Mak*_*Vi. 1 c# asp.net-mvc asp.net-mvc-4
在我在主网页程序集中的项目中,在我在global.asax中注册路由之前,我加载了许多外部程序集.其中一些程序集中包含MVC控制器和视图.
我的问题是这些外部控制器由于某种原因没有被选中,我认为控制器注册发生在我的程序集加载之前的某个地方,因为如果我在应用程序启动之前引用我的程序集(bin文件夹中的dll)一切正常.
所以我想知道是否有
之前我遇到过与WebAPI控制器类似的问题,我可以通过使用我的自定义修复它HttpControllerSelector,但我还没有在MVC中找到类似的东西.
能够通过覆盖来解决这个问题DefaultControllerFactory的CreateController方法:
的Application_Start:
IControllerFactory factory = new ControllerFactory();
ControllerBuilder.Current.SetControllerFactory(factory);
Run Code Online (Sandbox Code Playgroud)
的ControllerFactory:
public class ControllerFactory : DefaultControllerFactory
{
public override IController CreateController(RequestContext requestContext, string controllerName)
{
IController controller = null;
Type controllerType;
if (ControllerTypes.TryGetValue(controllerName.ToLower(), out controllerType))
{
controller = (IController) Activator.CreateInstance(controllerType);
}
return controller;
}
...
}
Run Code Online (Sandbox Code Playgroud)
ControllerTypes 是来自外部程序集的MVC控制器的字典.
| 归档时间: |
|
| 查看次数: |
2281 次 |
| 最近记录: |