在MVC中,Area使我们的业务逻辑更加清晰,为我们后期的维护带来了极大的便利,那么今天我就来啃啃这一块的东西,可以很方便的替代UrlRouting的一些功能哦~~
Let’s go
.
从上图我们可以看到,新增了Admin和User两个Area,在创建第一个的时候,VS会自动创建一个Areas文件夹。如上图。
我们在User/Controllers上面右键新建一个名为UserController的文件
如下图:
OK,我们可以看到前台和后天都有一个UserController,那么运行会怎么样呢?我们来看看:
Oh,my god.它居然报错了!!!
那么我们应该怎么来处理呢?
第一种:最简单快速的方法修改路由设置
用区域User作用样例
1 namespace Web.Areas.User 2 { 3 public class UserAreaRegistration : AreaRegistration 4 { 5 public override string AreaName 6 { 7 get 8 { 9 return "User"; 10 } 11 } 12 13 public override void RegisterArea(AreaRegistrationContext context) 14 { 15 context.MapRoute( 16 "User_default", 17 "User/{controller}/{action}/{id}", 18 new { controller = "User", action = "UserList", id = UrlParameter.Optional }, 19 new string[] { "Web.Areas.User.Controllers" } 20 ); 21 } 22 } 23 }
同时修改Global文件中的路由信息
1 routes.MapRoute( 2 "Default", // 路由名称 3 "{controller}/{action}/{id}", // 带有参数的 URL 4 new { controller = "user", action = "UserList", id = UrlParameter.Optional },// 参数默认值 5 new string[] { "Web.Controllers" }//这里是主要注意的地方!!!! 6 7 );
因为我这是前台的web这和区域中的出现重名Controller。所以改Global,如果你在项目开始的时候已经定义好了Area,那么只需要
更改Area中的XXXAreaRegistration.cs文件就OK了。
来看看我们修改以后的效果吧,是否好了呢?
因为我们默认的Action是列表页面,所以直接打开就是这个页面了~~
好了,就先到这里,后面我会继续深入研究Area下。大家一起进步吧~~