如何推动自定义控制器工厂ASP.Net MVC
我是mvc地区的新手。 所以我还在学习,并试图在MVC中学习很多先进的领域。 所以我正在阅读关于自定义控制器工厂ASP.Net MVC的post。
一个人解释得那么少,所以我只是不明白如何实施。 这里是post url 在asp.net mvc中是否可以制作通用控制器?
他说
您希望/Product/Index
触发MyController.Index()
这可以通过编写自己的IControllerFactory并实现CreateController
方法来实现,如下所示:
public IController CreateController(RequestContext requestContext, string controllerName) { Type controllerType = Type.GetType("MyController").MakeGenericType(Type.GetType(controllerName)); return Activator.CreateInstance(controllerType) as IController; }
需要更多示例代码。 只是不明白在哪里定义CreateController
函数。 我需要在基本控制器中编写此function吗?
当请求来自/Product/Index
或/Customer/Index
如何在基本控制器中调用索引方法?
所以在MVC高级领域寻找像我这样的新手的指导。 谢谢
您需要实现IControllerFactory (或从DefaultControllerFactoryinheritance,其中包含一些额外的function)。 之后,使用SetControllerFactory方法在Application_Start
设置控制器工厂:
ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());
希望这能为您澄清一些事情。
- 您需要创建一个实现IControllerFactory接口的类。
- 您可以忽略ReleaseController方法。
- 您可以为GetControllerSessionBehavior方法返回SessionStateBehavior.Default。
-
在Application_Start中,按如下方式设置Custom ControllerFactory:
ControllerBuilder.Current.SetControllerFactory(typeof运算(CCustomControllerFactory));