【发布时间】:2013-11-18 08:36:40
【问题描述】:
我是 mvc 领域的新手。所以我仍在学习并尝试学习 MVC 中的许多高级领域。所以我正在阅读一篇关于自定义控制器工厂 ASP.Net MVC 的帖子。
一个人解释得这么少,所以我只是不明白如何实施。这是帖子网址 In asp.net mvc is it possible to make a generic controller?
他说
您希望/Product/Index 触发MyController<Product>.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 时,如何在基本控制器中调用索引方法?
所以在 MVC 高级领域为像我这样的新手寻找指导。谢谢
【问题讨论】:
-
在答案中,它派生自 DefaultControllerFactory。对于这个问题,你必须实现 IControllerFactory。从 DefaultControllerFactory 派生没有帮助。
-
DefaultControllerFactory 也可以。显示的代码没有覆盖,因此假设它需要 IControllerFactory。两种方法都可以。
标签: c# asp.net-mvc