簡體   English   中英

asp.net路由問題和沖突

[英]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", "" } }
      );

任何幫助表示贊賞

謝謝

PostsNews路由具有完全相同的URL簽名。 也就是說,具有2個段的任何 URL將始終與Posts路由匹配,並且News路由是不可到達的執行路徑。

您需要使用一個或多個常量段或一個或多個約束來確保有2段路徑的PostsNews路線可能會錯過。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM