MVC中的区域
authour: | chenboyi |
updatetime: | 2015-05-03 08:26:30 |
friendly link: |
目录:
2,AreaRegistration类的RegisterAllAreas方法
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),也就是说先注册区域的路由,然后再注册网站的路由,不推荐修改其中的代码的执行顺序,不然有可能出现匹配路由规则紊乱
所有区域相关的文件都存在于Areas文件夹中,以具体的业务名称分开
下面的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 }
Controllers文件夹:
1、负责存放当前区域中的控制器类
Views文件夹:
1、存放当前区域的所有视图页面
2、可以存放_viewstart.cshtml页面
Views下的Share文件夹的作用:
1、可以存放当前区域的布局页_layout.cshtlm
注意点:1、除了将路由规则类提取到此类库中外还要将AreaRegistration 的子类提取过去
2、要保证控制器类的命名空间与AreaRegistration 的子类 保持一致
作者:Cboii
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
在wordpress安装、主题、插件以及开发上面有问题的,可以加入qq群:1140958614(Wp建站每日学习/交流群)进行学习和提问
如果需要建站服务,可以直接联系我的qq:185369045