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 的子类 保持一致

你可能感兴趣的:(mvc)