这对某些人来说一定是个微不足道的问题,但我没有找到任何有关此事的实际信息。
我有一个ASP.NET MVC Web应用程序。因为我喜欢编写可重用的代码,所以我想把我的控制器放到一个单独的库程序集中,并在多个Web应用程序中重用它们。
问题是,如何告诉ASP.NET MVC它应该在其他程序集中寻找控制器而不是Web应用程序本身?
答案 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是另一个显示如何创建自定义控制器工厂的链接。
祝你好运!