如果我在页面上使用 querystring navigateurl 在同一页面中重定向
if i use querystring on a page navigateurl redirecting in a samepage
我正在尝试单击 products.aspx 中的 link 并重定向到另一个页面 categories.aspx。当我在路由中使用 {*id} 来处理 products.aspx link 上的查询字符串时,效果不佳。发送相同的 products.aspx 页。
我的路线:
routes.MapPageRoute("productsgroup", "products/{groupname}/{*id}", "~/products.aspx");
routes.MapPageRoute("productscat", "products/brand/{bname}", "~/categories.aspx");
Hyperlink 在 products.aspx 页:
<asp:Hyperlink ID="hyper_link" runat="server" NavigateUrl='<% GetRouteUrl("productscat", new {bname=Eval("brand-name").ToString()})%>' Text="Category1"></asp:Hyperlink>
Hyperlink 在 asp:Repeater 中并且 Eval() 在 link 上工作正常并且 link 看起来很正常,当我点击 hyperlink、url 更改但未发送 categories.aspx 页面。
如果我删除查询字符串 {*id} 并且不使用 hyperlink 工作正常。
我正在尝试了解为什么会发生这种情况以及我们可以做些什么。
有一个简单的解决方案。更改路线顺序,您的目标 url 和 link 将起作用。
routes.MapPageRoute("productscat", "products/brand/{bname}", "~/categories.aspx");
routes.MapPageRoute("productsgroup", "products/{groupname}/{*id}", "~/products.aspx");
路由认为目标 url 是 "productsgroup" 因为它知道 url 并且目标 url 是这样开始的。路由等待变量和第二条路由,就像它不存在路由一样。
希望对您有所帮助。干杯。
我正在尝试单击 products.aspx 中的 link 并重定向到另一个页面 categories.aspx。当我在路由中使用 {*id} 来处理 products.aspx link 上的查询字符串时,效果不佳。发送相同的 products.aspx 页。
我的路线:
routes.MapPageRoute("productsgroup", "products/{groupname}/{*id}", "~/products.aspx");
routes.MapPageRoute("productscat", "products/brand/{bname}", "~/categories.aspx");
Hyperlink 在 products.aspx 页:
<asp:Hyperlink ID="hyper_link" runat="server" NavigateUrl='<% GetRouteUrl("productscat", new {bname=Eval("brand-name").ToString()})%>' Text="Category1"></asp:Hyperlink>
Hyperlink 在 asp:Repeater 中并且 Eval() 在 link 上工作正常并且 link 看起来很正常,当我点击 hyperlink、url 更改但未发送 categories.aspx 页面。
如果我删除查询字符串 {*id} 并且不使用 hyperlink 工作正常。
我正在尝试了解为什么会发生这种情况以及我们可以做些什么。
有一个简单的解决方案。更改路线顺序,您的目标 url 和 link 将起作用。
routes.MapPageRoute("productscat", "products/brand/{bname}", "~/categories.aspx");
routes.MapPageRoute("productsgroup", "products/{groupname}/{*id}", "~/products.aspx");
路由认为目标 url 是 "productsgroup" 因为它知道 url 并且目标 url 是这样开始的。路由等待变量和第二条路由,就像它不存在路由一样。
希望对您有所帮助。干杯。