添加Areas主要目的是区分一些不同的业务,避免不同的业务都在同一个Controllers下造成混乱,在MVC项目上右键->添加区域->我添加了HMbolie和PClient两个区域->如下图

HMbolieAreaRegistration.cs和PClientAreaRegistration.cs是默认生成的,代码中的第四个参数是 string[] namespaces命名空间参数。

namespace Demo.Areas.HMbolie

{ 
     public class HMbolieAreaRegistration : AreaRegistration
    {
public override string AreaName
{
get
{
 return"HMbolie";
            }
} public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"HMbolie_default",
"HMbolie/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "Demo.Areas.HMbolie.Controllers" }
);
}
  }
}

namespace Demo.Areas.PClient
{
public class PClientAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "PClient";
}
  }
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"PClient_default",
"PClient/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "Demo.Areas.PClient.Controllers" }
);
}
}
}
此时Areas已经创建完成,但是在iis下运行的时候感觉Areas没有起到作用,在官网中看到Areas是通过Global中的Application_Start()中的 AreaRegistration.RegisterAllAreas();来完成注册的,代码如下:


         /// <summary>
/// ApplicationStart
/// </summary>
protected void Application_Start()
{
//System.Threading.Thread.Sleep(10000);
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
我在Start()中线程睡10s中才启动,断点调试发现AreaRegistration.RegisterAllAreas()中根本没有找到HMbolieAreaRegistration.cs和PClientAreaRegistration.cs这两个相关的Areas类,iis下的代码是最新部署,但是却不执行?
解决方法如下:删除iis缓存文件
  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
  • 我删除了Temporary ASP.NET Files 下的缓存文件后,重启网站然后调试代码,一切都如愿的加载了。

mvc Areas注册域常见问题一的更多相关文章

  1. spring MVC cors跨域实现源码解析

    # spring MVC cors跨域实现源码解析 > 名词解释:跨域资源共享(Cross-Origin Resource Sharing) 简单说就是只要协议.IP.http方法任意一个不同就 ...

  2. MVC Areas

    ASP.NET MVC中,是依靠某些文件夹以及类的固定命名规则去组织model实体层,views视图层和控制层的.如果是大规模的应用程序,经常会由不同功能的模块组成,而每个功能模块都由MVC中的三层所 ...

  3. spring MVC cors跨域实现源码解析 CorsConfiguration UrlBasedCorsConfigurationSource

    spring MVC cors跨域实现源码解析 spring MVC cors跨域实现源码解析 名词解释:跨域资源共享(Cross-Origin Resource Sharing) 简单说就是只要协议 ...

  4. 任务45:Identity MVC:注册逻辑实现

    任务45:Identity MVC:注册逻辑实现 做登陆 在注册成功直接进行登陆,使用SignIn 这里的signIn实际上是HttpContext.Signin的封装 await _signMana ...

  5. Ajax+Spring MVC实现跨域请求(JSONP)JSONP 跨域

    JSONP原理及实现 接下来,来实际模拟一个跨域请求的解决方案.后端为Spring MVC架构的,前端则通过Ajax进行跨域访问. 1.首先客户端需要注册一个callback(服务端通过该callba ...

  6. Ajax+Spring MVC实现跨域请求(JSONP)(转)

    背景: AJAX向后台(springmvc)发送请求,报错:已阻止交叉源请求:同源策略不允许读取 http://127.0.0.1:8080/DevInfoWeb/getJsonp 上的远程资源.可 ...

  7. MVC项目不同域之间的UrlRouting

    一.DomainAction,方便生成不同域下的url 1.新建3个MVC项目,一个公用类库WebCore Demo.WebApplication0 绑定域名 www.demo.com demo.co ...

  8. Ajax+Spring MVC实现跨域请求(JSONP)

    背景: AJAX向后台(springmvc)发送请求,报错:已阻止交叉源请求:同源策略不允许读取 http://127.0.0.1:8080/DevInfoWeb/getJsonp 上的远程资源.可 ...

  9. Asp.Net MVC session跨域

    目的 在公司项目的某个特定场景中,需要在站点B的后端伪造请求,获取站点A的登录状态,抓取站点A的页面内容,因此要用实现session的跨域.以注册功能为例. 步骤 原理 简单地说,对于ASP.Net应 ...

随机推荐

  1. JS 中html 动态替换

    一.定义通用替换js函数,或调用JQuery验证的$.format函数: //----通用JS操作// var a = "我喜欢吃{0},也喜欢吃{1},但是最喜欢的还是{0},偶尔再买点{ ...

  2. check the element in the array occurs more than half of the array length

    Learn this from stackflow. public class test { public static void main(String[] args) throws IOExcep ...

  3. SSIS XML source demo

    以下是一个使用xml作为source的SSIS package示例: 自动生成的xsd.把两个结点merge join成一条记录. 示例XML如下: <?xml version="1. ...

  4. android开发中的变量名称

    非公有的变量前面要加上小写m, 静态变量前面加上小写s, 其它变量以小写字母开头, 静态变量全大写 例子 public class MyClass { public static final int ...

  5. 《TCP/IP 详解 卷一》读书笔记 -----第四章 ARP

    1.一个物理层的网络,例如以太网,可以同时被多个不同的网络层所使用.例如网络中的一些主机使用TCP/IP协议,其他主机使用其他的网络协议. 2.设备驱动软件从不关心IP数据报中的目的IP地址.这也是为 ...

  6. java使用HttpURLConnection和HttpClient分别模拟get和post请求以及操作cookies

    1.使用HttpURLConnection public static String getJsonByURL(String base_url) { String url = base_url; St ...

  7. 【温故而知新-Javascript】使用 Window 对象

    1. 获取 Window 对象 可以用两种方式获得Window对象.正规的HTML5方式是在Document对象上使用defaultView属性.另一种是使用所有浏览器都支持的全局变量window . ...

  8. 为Unity项目生成文档(一)

    VS生成chm帮助文档 VS代码中使用Xml注释,并通过Sandcastle生成chm文档的文章,这几篇值得分享: 使用.NET中的XML注释(一) -- XML注释标签讲解 使用.NET中的XML注 ...

  9. java10-3 equals方法

    public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”.   该方法,默认情况下比较的是地址值.但是,如果只是比较地址值的话,一般来说意义不大,所以要 ...

  10. You are note Hk

    直接打开是forbidden  最后一句话提示 于是改包 第二次还是修改包 Mozilla/5.0 (MSIE 7.0; Windows NT 6.0;.NET CLR 9.9)