asp.net路由问题和冲突
我正在使用asp.net路由显示一些页面,但它是冲突的,前两个正在工作,但第三个将转到第二个路由,即使我有一个单独的页面供其工作asp.net路由问题和冲突,asp.net,webforms,Asp.net,Webforms,我正在使用asp.net路由显示一些页面,但它是冲突的,前两个正在工作,但第三个将转到第二个路由,即使我有一个单独的页面供其工作 routes.MapPageRoute( "post", "{postname}-{postid}/", "~/post.aspx" ); routes.MapPageRoute( "Posts", "{Category}/{PageNo}/",
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", "" } }
);
谢谢你的帮助
谢谢这些
帖子
和新闻
路线具有完全相同的URL签名。也就是说,任何包含2个段的URL都将始终匹配帖子
路由,而新闻
路由是一个无法访问的执行路径
您需要使用1个或多个常量段或1个或多个约束,以确保有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语句。如果条件匹配,路由将返回。但是,如果您有两条路线都符合相同的条件,那么第一条路线将始终获胜,第二条路线将无法到达