zoukankan      html  css  js  c++  java
  • ASP.NET MVC:看 MVC 源码,学习:如何将 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 有所理解,解决本文的问题会有很多方案,这里不再赘述。

  • 相关阅读:
    Caesar cipher
    遗传算法之背包问题
    Transport scheme NOT recognized: [stomp]
    error running git
    Canvas 旋转的图片
    canvas时钟
    火箭起飞
    让图标转起来
    Tomcat启动脚本
    Task中的异常处理
  • 原文地址:https://www.cnblogs.com/happyframework/p/3345229.html
Copyright © 2011-2022 走看看