【发布时间】:2015-12-05 10:08:58
【问题描述】:
我的应用程序中有一个区域以及默认的 MVC Controllers 文件夹, 这是我的项目结构的样子。
我想从我的区域访问控制器,不带任何前缀,例如 .
localhost/Home --> 应该指向我在 Men Area 中的 HomeController,
localhost/Footware-->应该指向我在 Men Area 中的 FootwareController
并且在我的默认控制器文件夹中,我有与 Men 区域中的控制器同名的控制器,所以我想访问默认控制器 商店前缀 例如:
localhost/store/Home --> 应该从默认选择 HomeController 控制器页面。
localhost/store/Jeans --> 应该从默认选择 JeansControllers 控制器页面。
我所在地区的路线配置是:
public class MenAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Men";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Men_default",
"Men/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
应用程序的路由配置是:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Global.asax.cs 是
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
问候,
【问题讨论】:
-
有什么理由不为这 2 个商店路线创建一个商店区域,然后在主 web 应用程序中而不是在区域内创建一个家庭和鞋类控制器?
-
@Glitch100 已经开发了如此多的代码,对其进行任何更改都会破坏应用程序,而我在这里展示的只是一个框架代码,并不能完全代表我的应用程序。
标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing asp.net-mvc-areas