我想在asp.net mvc应用程序中分配一条路由。
我有一个测量控制器。在业务场景中,我有3种类型的Measurement。
由于我希望该网址类似于 Measurement / Create / Lhenga
就是这样,我想创建度量/创建/衬衫和度量/创建/ Pardi 路线。
尽管我知道我将不得不在RouteConfig.cs类中编写一条路由。 我写了
routes.MapRoute(
"MeasurementRoute",
"{controller}/{action}/{type}/"
);
答案 0 :(得分:1)
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开头,那么它将仅考虑第二个路由,即默认路由