我刚刚创建了一个新的 ASP.NET MVC 4 解决方案并添加了 3 地区 并希望它们按指示路由:
1. General -> http://www.mysite.com/
2. Members -> http://www.mysite.com/members/
3. Administration -> http://www.mysite.com/administration/
我可以配置路由,以便“常规”区域在它是第一个段时工作,但当我不希望“常规”作为 URL 中的一个段出现时,似乎无法让我的路由在所有 3 个区域中工作。正如你所看到的,我的目标是一个干净的 URL 结构。
我计划在每个区域下添加一些 Controller / View ,并希望维护这种区域组织。
我见过一个 similar MVC 2 problem posted但我不确定区域注册的顺序是否会纠正我的特定问题。
最佳答案
打开您的 GeneralAreaRegistration.cs 文件。
找到这个:
context.MapRoute(
"General_default",
"General/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
...并替换为:
context.MapRoute(null,
"{controller}/{action}/{id}",
new { controller = "General", action = "Index", id = UrlParameter.Optional }
);
回复评论:
假设您正在使用 URL
http://www.mysite.com/members
,并假设这是在您的 MembersAreaRegistration.cs 文件中:context.MapRoute(
"Members_default",
"Members/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
...然后它应该工作。但是,如果您没有
controller = "Home"
您的 MapRoute 默认值中的片段,那么 URL 必须是 http://www.mysite.com/members/home
.
关于asp.net-mvc - ASP.NET MVC 4 - 2 个带段的区域,1 个不带段的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9982122/