繁体   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