代码之家  ›  专栏  ›  技术社区  ›  Venemo

如何告诉ASP.NET MVC在库中查找控制器?

  •  2
  • Venemo  · 技术社区  · 15 年前

    对某些人来说,这肯定是一个微不足道的问题,但我还没有找到任何关于这方面的实际信息。

    我有一个ASP.NET MVC Web应用程序。由于我喜欢编写可重用的代码,所以我想将控制器放入单独的库程序集中,并在多个Web应用程序中重用它们。

    问题是,如何告诉ASP.NET MVC它应该在其他程序集中而不是Web应用程序本身查找控制器?

    1 回复  |  直到 15 年前
        1
  •  3
  •   RPM1984    15 年前

    您需要创建自己的控制器工厂。

    退房 this 链接

    基本上,创建如上所述的ControllerFactory,然后在global.asax中添加以下行:

    ControllerBuilder.Current.SetControllerFactory(new YourFactory());
    

    它告诉ASP.NET MVC使用控制器工厂。

    更重要的是,在定义路由时,需要向ASP.NET MVC提供有关此程序集所在位置的“提示”:

    yourRoute.DataTokens = new RouteValueDictionary(
        new
        {
             namespaces = new[] { "SomeAssembly.Controllers" }
        });
    

    如果找不到它,那么它会在常规名称空间(Web应用程序)中查找。

    Here 是另一个显示如何创建自定义控制器工厂的链接。

    祝你好运!