C# 如何实现自定义控制器工厂ASP.NET MVC
我是mvc领域的新手。所以我仍然在学习,并努力学习MVC的许多先进领域。所以我读了一篇关于定制控制器工厂ASP.NETMVC的帖子 一个家伙解释得太少了,所以我不知道如何实施。这是帖子的url 他说 您希望C# 如何实现自定义控制器工厂ASP.NET MVC,c#,asp.net-mvc,C#,Asp.net Mvc,我是mvc领域的新手。所以我仍然在学习,并努力学习MVC的许多先进领域。所以我读了一篇关于定制控制器工厂ASP.NETMVC的帖子 一个家伙解释得太少了,所以我不知道如何实施。这是帖子的url 他说 您希望/Product/Index触发MyController.Index() 这可以通过编写自己的IControllerFactory并实现如下CreateController方法来实现: public IController CreateController(RequestContext re
/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
函数。我是否需要在基本控制器中编写此函数
当请求类似于/Product/Index
或/Customer/Index
时,如何在基本控制器中调用Index方法
所以,在MVC高级区为像我这样的新手寻找指导。谢谢您需要实现(或继承其中包含一些额外功能的功能)。之后,使用以下方法在应用程序\u Start
中设置控制器工厂:
希望这能为你澄清一些事情
在答案中,它来自DefaultControllerFactory。对于这个问题,您必须实现IControllerFactory。从DefaultControllerFactory派生不会有帮助。DefaultControllerFactory也会起作用。显示的代码没有覆盖,因此假定它需要IControllerFactory。这两种方法都可以。你能把我重定向到IControllerFactory接口的任何文章吗。谢谢,请重新引导我阅读有关IControllerFactory界面的任何文章。thanks@ThomasIoC是使用自定义控制器工厂的最佳示例之一。本文可能会帮助您:
ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());