MVC中的区域

authour: chenboyi
updatetime: 2015-05-03 08:26:30
friendly link:  

 

 

 

 

 


 

目录:

  1,思维导图

  2,AreaRegistration类的RegisterAllAreas方法

  3,区域文件夹Areas 

  4,一个继承AreaRegistration的子类

  5,区域下的Controllers和Views文件夹

  6,将区域中的控制器单独存放到某个类库中进行管理

 


 1,思维导图

  

 

 2,AreaRegistration类的RegisterAllAreas方法:

     2.1 AreaRegistration类(MVC类):提供在 ASP.NET MVC 应用程序内注册一个或多个区域的方式。

  2.2 RegisterAllAreas是AreaRegistration类的静态方法,在Global.asax.cs(全局)文件的Application_Start方法中,RegisterAllAreas方法负责注册当前MVC网站中所有的区域路由规则。

  2.3 在上面提到的 Application_Start 中, 是先只执行AreaRegistration.RegisterAllAreas(),然后再执行RouteConfig.RegisterRoutes(RouteTable.Routes),也就是说先注册区域的路由,然后再注册网站的路由,不推荐修改其中的代码的执行顺序,不然有可能出现匹配路由规则紊乱

 

3,区域文件夹Areas

  所有区域相关的文件都存在于Areas文件夹中,以具体的业务名称分开

  

 

4,一个继承AreaRegistration的子类

  下面的AdminAreaRegistration继承自AreaRegistration,它为Admin区域注册路由

  CodeSimple:

 

 1 using System.Web.Mvc;
 2 
 3 namespace Admin.Controllers
 4 {
 5     /// <summary>
 6     /// 区域重要类:必须继承AreaRegistration
 7     /// 作用:1、负责注册此区域的区域路由规则
 8     ///          2、标示视图引擎查找视图的对应文件夹
 9     /// 
10     /// </summary>
11     public class AdminAreaRegistration : AreaRegistration
12     {
13         /// <summary>
14         /// 用于标示视图引擎查找视图的对应文件夹
15         /// </summary>
16         public override string AreaName
17         {
18             get
19             {
20                 return "Admin";
21             }
22         }
23 
24         /// <summary>
25         /// 负责向当前MVC网站的RouteCollection 路由集合中注册区域路由规则的方法
26         /// </summary>
27         /// <param name="context"></param>
28         public override void RegisterArea(AreaRegistrationContext context)
29         {
30             context.MapRoute(
31                 "Admin_default",
32                 "Admin/{controller}/{action}/{id}",
33                 new { action = "Index", id = UrlParameter.Optional }
34             );
35         }
36     }
37 }

 

 

5,区域下的Controllers和Views文件夹

  Controllers文件夹:

    1、负责存放当前区域中的控制器类

  Views文件夹:

     1、存放当前区域的所有视图页面
          2、可以存放_viewstart.cshtml页面

  Views下的Share文件夹的作用:

    1、可以存放当前区域的布局页_layout.cshtlm 

 

6,将区域中的控制器单独存放到某个类库中进行管理

注意点:1、除了将路由规则类提取到此类库中外还要将AreaRegistration 的子类提取过去
           2、要保证控制器类的命名空间与AreaRegistration 的子类 保持一致

posted on 2015-05-03 08:29  两宝程序cboii  阅读(471)  评论(0编辑  收藏  举报

导航