C# 用于从区域中删除控制器名称的自定义路由
我想从区域中的URL中删除控制器名称 我试试这个C# 用于从区域中删除控制器名称的自定义路由,c#,asp.net-mvc,routes,asp.net-mvc-routing,C#,Asp.net Mvc,Routes,Asp.net Mvc Routing,我想从区域中的URL中删除控制器名称 我试试这个 context.MapRoute("AreasName_default", "AreasName/{action}/{id}", new {action = "Index", id = UrlParameter.Optional }); 但它得到了一个错误: 匹配的路由不包括“控制器”路由值,该值 是必需的” 尝试对区域使用属性路由,而不是调用MapRoute(): 要启用属性路由
context.MapRoute("AreasName_default", "AreasName/{action}/{id}", new {action = "Index", id = UrlParameter.Optional });
但它得到了一个错误:
匹配的路由不包括“控制器”路由值,该值
是必需的”
尝试对区域使用属性路由,而不是调用MapRoute(): 要启用属性路由,必须添加对routes.mapmvCatributeRoutes()方法的调用,并在RouteConfig.cs文件的RegisterRoutes()方法中使用:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Enabling attribute routing. Recommend to put attribute routes in the route table before traditional routes.
routes.MapMvcAttributeRoutes();
// Additional calls
routes.MapRoute(...)
}
干得好!将这一行添加到RouteConfig.cs之后:“AreaRegistration.Registeralareas();”@nawaz uddin:当我创建一个新项目时,Visual Studio模板已经包括
AreaRegistration.Registeralareas()
作为应用程序启动()方法中的第一行。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Enabling attribute routing. Recommend to put attribute routes in the route table before traditional routes.
routes.MapMvcAttributeRoutes();
// Additional calls
routes.MapRoute(...)
}