目录

背景如何将 Area 中的 Controller 放到独立的程序集?备注

背景返回目录

本文假设您已经熟悉了 ASP.NET MVC 的常规开发方式、执行模型和关键扩展点,这里主要说一下如何使用 ASP.NET MVC 的源代码解决一些问题。

如何将 Area 中的 Controller 放到独立的程序集?返回目录

为了更好的组合代码,我们都会使用 Area 划分我们的项目,也会把 Controller 移动到独立的程序集,多数情况这回导致问题。

项目结构

问题出现在哪里了?

初步原因分析是 DefaultController 的 Namespace 不匹配 TestAreaRegistration 的 Namespace,我们把 DefaultController 的 Namespace 修改的成 TestAreaRegistration 的 Namespace,然后就OK了。

看到这里基本就可以解决问题了,我们可以修改 AreaRegistrationContext 的 Namespaces,

深入 MVC 源代码

想了解 AreaRegistrationContext 的 Namespaces 如何构造的就需要看 MVC 的源代码了,见下图:

看到了 GetType.Namespace; 是不是就悟了,不难想象 AreaRegistrationContext.MapRoute 使用了他的 Namespaces 属性,见下图:

备注返回目录

如果你对 MVC 路由中的 Namespace 有所理解,解决本文的问题会有很多方案,这里不再赘述。

 
分类: ASP.NET MVC

如何将 Area 中的 Controller 放到独立的程序集?的更多相关文章

  1. ASP.NET MVC:看 MVC 源码,学习:如何将 Area 中的 Controller 放到独立的程序集?

    背景 本文假设您已经熟悉了 ASP.NET MVC 的常规开发方式.执行模型和关键扩展点,这里主要说一下如何使用 ASP.NET MVC 的源代码解决一些问题. 如何将 Area 中的 Control ...

  2. asp.net mvc area实现多级controller和多级view

    经常需要描述这样的项目结构 ~:. //web根目录├─.admin   //管理员功能目录│  └─index.html    //管理员目录页面├─.user                  / ...

  3. 在 Area 中使用RouteAttribute 定义路由, 并支持多语言

    业务上的一个需求, 同一页面, 两种不同的使用方法, 为了区分这两种需求, 需要加一个参数到 URL 中,不改路由的话, 是这样: http://localhost:16269/en-US/Forwa ...

  4. SSM框架中,controller的action返回参数给vue.js

    在SSM框架中,controller的action中,返回的是视图,即jsp页面或是ModelAndView,若是通过axios给vue传值的话,需要转换为字符串或是user实体类对象. 使用@Res ...

  5. Servlet3模块化应用中,@Controller没有被注入,导致出现:No mapping found for HTTP request with URI [/xxx/xxx] in DispatcherServlet with name 'springmvc'

    问题描述:Servlet3模块化应用中,@Controller没有被注入,导致出现: org.springframework.web.servlet.DispatcherServlet noHandl ...

  6. MVC和WebApi中设置Area中的页为首页

    拿WebApi为例,我们一般会生成一份帮助文档,帮助文档会在Area中 我们现在要讲帮助文档设为首页 只需在App_Start文件夹下添加 RouteConfig 类 public class Rou ...

  7. ASP.NET Core MVC 中的 [Controller] 和 [NonController]

    前言 我们知道,在 MVC 应用程序中,有一部分约定的内容.其中关于 Controller 的约定是这样的. 每个 Controller 类的名字以 Controller 结尾,并且放置在 Contr ...

  8. springmvc中的controller是单例的

    今天发现spring3中的controller默认是单例的,若是某个controller中有一个私有的变量a,所有请求到同一个controller时,使用的a变量是共用的,即若是某个请求中修改了这个变 ...

  9. MVC中的Controller

    Controller是MVC模式中的三个核心元素之一. MVC模式中的Controller主要负责响应用户的输入, 并在响应时修改Model. MVC提供的是方法调用的结果, 而不是动态生成的页面. ...

随机推荐

  1. Activity的LaunchMode情景思考

    此链接:http://blog.csdn.net/xiaodongrush/article/details/28597855 1. 有哪几种类型?分别有什么用? http://developer.an ...

  2. Delegate,Action,Func,Predicate的使用与区别

    C#4.0推出后,类似Linq,Lamda表达式等许多新的程序写法层次不穷.与之相关的Delegate,Action,Func,Predicate的使用和区别也常常让大家迷惑,此处就结合实际的应用,对 ...

  3. C#记录日志、获取枚举值 等通用函数列表

    )             {                 ] >=  && ipvals[] <=                  && ipval ...

  4. oracle_面试题

    SELECT a.name ,IFNULL(b.name,"BOSS") FROM boss a LEFT JOIN boss b ON a.MANAGER_ID = b.ID 员 ...

  5. WeakReference and WeakHashMap

    弱引用通过WeakReference类实现,弱引用和软引用很像,但弱引用的引用级别更低.对于只有弱引用的对象而言,当系统垃圾回收机制运行时,不管系统北村是否足够,总会回收该对象所占用的内存.当然,并不 ...

  6. Petroglyph访问:中间件游戏

    Xsolla有幸与Petroglyph的总裁及创始人Michael Legg进行了对话. 这是及时战略游戏中对主要一家公司. 由前Westwood的员工 创办,还设计了一块新的RTS游戏-Grey G ...

  7. 用HMM(隐马)图解三国杀的于吉“质疑”

    ·背景 最近乘闲暇之余初探了HMM(隐马尔科夫模型),觉得还有点意思,但是网上的教程都超级枯草,可读性很差,抄来抄去的,一堆公式仍在你面前,谁能搞的懂(但园内的两篇写的还算不错.真才实学).在熬制3天 ...

  8. 解决OUTLOOK 533错误问题

    OutLook中“553 sorry, that domain isn‘t in my list of allowed rcpthosts (#5.7.1)”,无法发送邮件错误,解决方法 最近我在给徐 ...

  9. The Swift Programming Language-官方教程精译Swift(1)小试牛刀

    通常来说,编程语言教程中的第一个程序应该在屏幕上打印“Hello, world”.在 Swift 中,可以用一行代码实现:  println("hello, world") 如果你 ...

  10. 当今最流行的Node.js应用开发框架简介

    快速开发而又容易扩展,高性能且鲁棒性强.Node.js的出现让所有网络应用开发者的这些梦想成为现实.但是,有如其他新的开发语言技术一样,从头开始使用Node.js的最基本功能来编写代码构建应用是一个非 ...