mvc Areas注册域常见问题一

添加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 下的缓存文件后,重启网站然后调试代码,一切都如愿的加载了。
时间: 2024-08-04 15:15:54

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

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

spring MVC cors跨域实现源码解析 名词解释:跨域资源共享(Cross-Origin Resource Sharing) 简单说就是只要协议.IP.http方法任意一个不同就是跨域. spring MVC自4.2开始添加了跨域的支持. 跨域具体的定义请移步mozilla查看 使用案例 spring mvc中跨域使用有3种方式: 在web.xml中配置CorsFilter <filter> <filter-name>cors</filter-name> <

Web Api Route 注册要放在 Mvc Route 注册前

今天想研究一下Web Api,写了一个测试Api,打开网站后浏览一下,可是却提示找不到方法,刚开始以为哪里配置错了,可找了半天也没见. 因为我是在一个现有Mvc站点做的Demo,所以打算新建一个Mvc网站,再试一下,新站点是正常的,对比一下Global文件,发现WebApiConfig和RouteConfig顺序不一样. 如果把新站点的RouteConfig也放在WebApiConfig之前,同样提示找不到方法.看来这两个配置有关联呀. ? 1 2 WebApiConfig.Register(G

MVC会员注册

自从写了<数据库数据加密与解密>http://www.cnblogs.com/insus/p/3434735.html.其中也有提及Insus.NET将要在MVC应用程序中实现会员注册的功能.一段时间来,工作繁忙,这个星六还要值班.现在算是忙里偷闲,继续写MVC的程序.本次要实现会员注册功能,从最简单的入手.在数据库中,创建一张会员表[Member] 注意一下密码字段的数据类型,由于要把密码加密之后,它会转换为二进制.有关加密,可以参加文章开头的链接.接下来,完成注册的存储过程[dbo].[u

Spring MVC登录注册以及转换json数据

项目结构; 代码如下: BookController package com.mstf.controller; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codehaus.jackson.map.ObjectMapper; import com.mstf.

从0开始,一起搭框架、做项目(1)搭建MVC环境 注册区域

简述 从今天开始,我们从0开始搭建一个框架,并且完成一个任务管理系统的项目.这并不是什么大项目,只是对于不熟悉MVC以及不熟悉面向接口开发和依赖注入的朋友们有所启发,因为是从0开始,所以有些地方比较啰嗦,希望大家理解! 希望新手朋友们抛弃“拿来主义”,动手跟着一步一步的做,当做完这个框架和项目,一定会让新手朋友们的水平有很大提升! 同时,希望大家多多推荐,让更多的朋友参与进来,这不是我一个人教大家开发,是我们边学边做一起开发,有疑问,有问题,有更好的建议或解决方案,希望大家踊跃提出来,每下一篇,

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

JSONP原理及实现 接下来,来实际模拟一个跨域请求的解决方案.后端为Spring MVC架构的,前端则通过Ajax进行跨域访问. 1.首先客户端需要注册一个callback(服务端通过该callback(jsonp)可以得到js函数名(jsonpCallback)),然后以JavaScript语 法的方式,生成一个function 2.接下来,将JSON数据直接以入参的方式,放置到function中,这样就生成了一段js语法文档,返回给客户端. 3.最后客户端浏览器动态的解析script标签,

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

JSONP解释 在解释JSONP之前,我们需要了解下"同源策略"这个概念,这对理解跨域有帮助.基于安全的原因,浏览器是存在同源策略机制的,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载额文档的属性.有点绕,说的简单点就是浏览器限制脚本只能和同协议.同域名.同端口的脚本进行交互. JSONP就是为了解决这一问题的,JSONP是英文JSON with Padding的缩写,是一个非官方的协议.他允许服务端生成script tags返回值客户端,通过javascript call

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

背景: AJAX向后台(springmvc)发送请求,报错:已阻止交叉源请求:同源策略不允许读取 http://127.0.0.1:8080/DevInfoWeb/getJsonp 上的远程资源.可 以将资源移动到相同的域名上或者启用 CORS 来解决这个问题. 百度一下,发现是遇到了跨域请求请求问题.搜集资料如下 JSONP解释 在解释JSONP之前,我们需要了解下"同源策略"这个概念,这对理解跨域有帮助.基于安全的原因,浏览器是存在同源策略机制的,同源策略阻止从一个源加载的文档或脚

MVC Areas

在大型的MVC项目中,可能是由很多的模块组成的,例如给用户使用的模块,管理员的后台模块.这样就可以将管理员的后台模块放到区域里面,(右键添加区域).每一个区域都是一个单独的mvc结构.这样就能保证在整个项目中,各个模块独立. 区域的路由规则在每个区域底下的AreaRegistration里面修改. 一:常见问题 既然是独立的模块,项目中不同的模块肯定会出现相同的Controller和Action,当一个项目中有两个相同的控制器时,框架就会报错,错误信息如图 解决的办法很简单,在路由注册里面,添加