[英]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.