[英]Define Custom Route asp.net mvc5
我想在asp.net mvc应用程序中分配路由。
我有一个测量控制器。 在业务场景中,我有3种类型的Measurement。
由于这个原因,我希望网址像Measurement / Create / Lhenga
就像这样,我想创建Measurement / Create / Blouse和Measurement / 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.