似乎我们需要为webform路由中的每个页面指定路由
我想使用默认路由到名为 cms.aspx 的页面,每个页面都使用名为 nameofurl 的参数 expect default.aspx
有时我想发送cms.aspx多于一个参数,例如
mydomain.com/cms.apx?nameurl=somevalue
或
mydomain.com/cms.apx?nameurl=somevalue&order=6
我有这个代码,但它不是解决方案,因为你必须告诉路由页面的名称
routes.MapPageRoute("",
"pageName/{nameofurl}",
"~/cms.aspx")
我想要这样的东西
routes.MapPageRoute("",
"?/{nameofurl }",
"~/cms.aspx")
有时我希望它像这样
routes.MapPageRoute("SalesRoute",
"?/{nameofurl}/{order}",
"~/cms.aspx");
任何想法如何在不指定页面名称的情况下实现这种路由?
答案 0 :(得分:0)
您可以创建如下所示的路线:
routes.MapPageRoute("Route1","{nameofurl}","~/cms.aspx")
routes.MapPageRoute("Route2","{nameofurl}/{order}","~/cms.aspx")
routes.MapPageRoute("Route3","{nameofurl}/{order}/{abc}","~/cms.aspx")
如果没有其他包含2或3个参数的页面,上述路线将起作用。但是如果你想要路由一些其他页面并且有2个参数要传递,那么你需要在参数之前提一个硬编码的字符串,否则新路由将覆盖旧路由。
例如:
routes.MapPageRoute("Route4","{nameofurl}/{order}","~/products.aspx")
在上述情况下,Route4将覆盖Route 2.因此,您需要定义如下所示的路由:
routes.MapPageRoute("Route4","products/{nameofurl}/{order}","~/products.aspx")
您可以在以下网址找到与网址相关的文章:
http://karmic-development.blogspot.in/2013/10/url-routing-in-aspnet-web-forms-part-2.html
谢谢&的问候,
Munjal