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

时间:2010-09-15 23:48:28

标签: .net asp.net asp.net-mvc .net-assembly

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

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

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

1 个答案:

答案 0 :(得分:3)

您需要创建自己的ControllerFactory。

查看this链接

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

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

告诉ASP.NET MVC使用你的ControllerFactory。

踢球者是你定义你的路线时,你需要给ASP.NET MVC一个关于这个组件所在位置的“提示”:

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

如果找不到它,那么它会查找常规命名空间(Web Application)。

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

祝你好运!