在MVC中,Area使我们的业务逻辑更加清晰,为我们后期的维护带来了极大的便利,那么今天我就来啃啃这一块的东西,可以很方便的替代UrlRouting的一些功能哦~~
Let’s go
.
从上图我们可以看到,新增了Admin和User两个Area,在创建第一个的时候,VS会自动创建一个Areas文件夹。如上图。
我们在User/Controllers上面右键新建一个名为UserController的文件
如下图:
OK,我们可以看到前台和后天都有一个UserController,那么运行会怎么样呢?我们来看看:
Oh,my god.它居然报错了!!!
那么我们应该怎么来处理呢?
第一种:最简单快速的方法修改路由设置
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下。大家一起进步吧~~