VS2010+EF Code First 4.1学习MVC3(二)

在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下。大家一起进步吧~~

原文地址:https://www.cnblogs.com/zhangpan1244/p/2873285.html