[英]asp.net routing issue and conflict
我使用asp.net路由来显示一些页面,但它是冲突的,前两个正在工作,但第三个进入第二个路径,尽管我有一个单独的页面,它可以工作。
routes.MapPageRoute(
"post",
"{postname}-{postid}/",
"~/post.aspx"
);
routes.MapPageRoute(
"Posts",
"{Category}/{PageNo}/",
"~/posts.aspx", true,
new RouteValueDictionary { { "PageNo", "" } }
);
routes.MapPageRoute(
"News",
"{News-Category}/{PageNo}/",
"~/news.aspx", true,
new RouteValueDictionary { { "PageNo", "" } }
);
任何帮助表示赞赏
谢谢
Posts
和News
路由具有完全相同的URL签名。 也就是说,具有2个段的任何 URL将始终与Posts
路由匹配,并且News
路由是不可到达的执行路径。
您需要使用一个或多个常量段或一个或多个约束来确保有2段路径的Posts
和News
路线可能会错过。
routes.MapPageRoute(
"post",
"{postname}-{postid}",
"~/post.aspx"
);
routes.MapPageRoute(
"Posts",
"Category/{PageNo}",
"~/posts.aspx", true,
new RouteValueDictionary { { "PageNo", UrlParameter.Optional } }
);
routes.MapPageRoute(
"News",
"News-Category/{PageNo}",
"~/news.aspx", true,
new RouteValueDictionary { { "PageNo", UrlParameter.Optional } }
);
想想路由就像switch case语句一样。 如果条件匹配,则路线将返回。 但是如果你有2条路线都匹配相同的条件,第一条路线将永远胜利而第二条路线将无法到达。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.