簡體   English   中英

定義自定義路由asp.net mvc5

[英]Define Custom Route asp.net mvc5

我想在asp.net mvc應用程序中分配路由。

我有一個測量控制器。 在業務場景中,我有3種類型的Measurement。

  1. 襯衫
  2. Lhenga
  3. 帕迪

由於這個原因,我希望網址像Measurement / Create / Lhenga

就像這樣,我想創建Measurement / Create / BlouseMeasurement / Create / Pardi路線。

雖然我知道我將不得不在RouteConfig.cs類中編寫一條路由。 我已經寫了

 routes.MapRoute(
            "MeasurementRoute",
            "{controller}/{action}/{type}/"
            );
    public static void RegisterRoutes(RouteCollection routes) {
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
     routes.MapMvcAttributeRoutes();

     routes.MapRoute(
      name: "Contact",
      url: "Contact",
      defaults: new {
       controller = "Contact", action = "Address"
      });

     routes.MapRoute(
      name: "Default",
      url: "{controller}/{action}/{id}",
      defaults: new {
       controller = "Home", action = "Index", id = UrlParameter.Optional
      }
     );
    }

每個MVC應用程序都必須配置(注冊)至少一條路由,該路由默認由MVC框架配置

您還可以使用MapRoute擴展方法配置自定義路由。 您需要在MapRoute中至少提供兩個參數,即路由名稱和url模式。 Defaults參數是可選的。 您可以注冊多個具有不同名稱的自定義路由。 考慮以下示例,在該示例中注冊“聯系”路線。

如上面的代碼所示,Contact路由的URL模式為Contacts / {id},它指定任何以domainName / Contacts開頭的URL必須由ContactController處理。 注意,我們沒有在URL模式中指定{action},因為我們希望每個以Contact開頭的URL都應始終使用ContactController的Index操作。 我們指定了默認的控制器和操作來處理任何以域名/聯系人開頭的URL請求。

MVC框架按順序評估每個路由。 它從第一個配置的路由開始,如果傳入的URL不滿足該路由的URL模式,則它將評估第二個路由,依此類推。 在上面的示例中,路由引擎將首先評估Contact路由,如果傳入的網址不是以/ Contacts開頭,那么它將僅考慮第二個路由,這是默認路由

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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