Ber*_*ern 5 asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas asp.net-mvc-4
我刚刚创建了一个全新的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/
Run Code Online (Sandbox Code Playgroud)
我可以配置路由,以便"常规"区域在它是第一个段时起作用,但是当我不希望"常规"在URL中显示为段时,似乎无法让我的路由在所有3个区域中工作.正如您所看到的,我的目标是建立一个干净的URL结构.
我计划在每个区域下添加一些控制器/视图,并希望维护这个区域组织.
我已经看到了类似的MVC 2问题,但我不确定区域注册的顺序是否会纠正我的特定问题.
打开 GeneralAreaRegistration.cs 文件。
找到这个:
context.MapRoute(
"General_default",
"General/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
...并替换为:
context.MapRoute(null,
"{controller}/{action}/{id}",
new { controller = "General", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
回复评论:
假设您正在使用 URL http://www.mysite.com/members,并假设它位于您的 MembersAreaRegistration.cs 文件中:
context.MapRoute(
"Members_default",
"Members/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
...那么它应该可以工作。但是,如果您的 MapRoute 默认值中没有该controller = "Home"片段,则 URL 必须是http://www.mysite.com/members/home.
| 归档时间: |
|
| 查看次数: |
2078 次 |
| 最近记录: |