7.0区域
1:区域分层的好处是:可以将控制器类的dll生成到不同的文件夹下 这样方便于管理;
2:区域需要注意的问题:
1:区域下的控制器类的命名空间的前缀必须和区域下的类的命名空间的前缀相同
MVC中的区域
特点:
1、MVC中的区域都是存在Areas 文件夹中的 注意:Areas是自动生成的
2、MVC每个区域都有自己的控制器和视图文件夹
3、每个区域的Views文件夹下也可以有_ViewStart.cshtml,主要用于存放当前区域中所有视图的公共js和css
4、MVC网站的路由规则匹配默认总是区域路由规则开始匹配,最后才是去匹配网站路由规则
5、MVC区域的控制器类的查找方式:去和区域类(继承了AreaRegistration父类)的命名空间相同的命名空间下查找 (此命名空间的前缀一致即可,子命名空间可以随意些)
注意点:MVC网站中的所有Views下面的Web.config 是被视图引擎读取其中的相应信息决定如何编译视图类,
不能删除其中的任何东西,也不能删除web.config文件本身(注意MVC中的所有视图Views中的web.config是用于指定前台页面需要继承的父类(System.Web.Mvc.WebViewPage)是那些 和 一些重要的配置文件,所以我们一般不能动)
区域路由匹配规则:
1:解析出控制器:将控制器和action名存进RoteData中 解析出区域名称存进DataTokens中
2:调用DefalutContrllerFactory反射创建HomeController控制器的对象实例
2.1去当前网站运行的bin目录 根据当前路由规则的命名空间约束(MVC知识点.Areas.Index.*,就是根据指定的路由空间的命名空间约束去指定的文件夹下查找对应的控制器) 去查找对应的控制器类
2.2获取此类的Type类型 在创建对象实例存入上下文的RemapHander中
例如:
MVC中区域中的类的查找方式原理解析(根据区域中的命名空间的前缀去查找与其命名空间前缀相同的控制器)
adminAreaRegistration : AreaRegistration 的命名空间为MVC知识点.Areas.admin
那么将来回去 MVC知识点.Areas.admin.* 下面去查找控制器的类
浙公网安备 33010602011771号