MVC 3 Working With Area Kevin

Area 是Route中类似命名空间的概念,可以将多个有controller、view、route组成的集合分开,在相对大的项目中比较有用。

1.创建Area

新建一个MVC项目,在解决方案上面右键“添加Area”。

添加后,你会发现解决方案里面多了一个顶级目录Area,下面是一个小的MVC项目。

2.注册Area

在Application_Start()方法里,AreaRegistration.RegisterAllAreas();

3.在地址栏中输入Area/Controller/Action即可访问Area中的Controller等内容。

4.默认情况下,你需要在路由注册里面加入命名空间以防止出现相同名字的Controller混合的问题。

View Code
1 public static void RegisterRoutes(RouteCollection routes) {
2 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
3 routes.MapRoute(
4 "Default", // Route name
5 "{controller}/{action}/{id}", // URL with parameters
6 new { controller = "Home", action = "Index", id = UrlParameter.Optional }
7 );
8 }
View Code
1 public static void RegisterRoutes(RouteCollection routes) {
2 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
3 routes.MapRoute(
4 "Default", // Route name
5 "{controller}/{action}/{id}", // URL with parameters
6 new { controller = "Home", action = "Index", id = UrlParameter.Optional },
7 new[] {"WorkingWithAreas.Controllers"}
8 );
9 }

5.默认情况下,你不需要更改任何地方,@Html.ActionLink()放法会自动检测你当前所在的Area,并将连接到导航到Area内。但如果你需要连接到其他一个Area中,需要写成下面的方法:

View Code
1 381
2 @Html.ActionLink("Click me to go to another area", "Index", new { area = "Support" })

注意,area的值必须是有效的值。

原文地址:https://www.cnblogs.com/kfx2007/p/2982005.html