在asp.net mvc中是否可以制作通用控制器?

2024-01-06

我正在尝试创建一个通用控制器,即:

public class MyController<T> : Controller where T : SomeType
{ ... }

然而,当我尝试使用它时,我到处都遇到这个错误......

控制器名称必须以“Controller”结尾

所以,我的问题是,是否可以在 asp.net mvc 中制作通用控制器?

Thanks!


如果我正确理解你,你想要做的就是通过类型 T 的通用控制器路由给定模型的所有请求。

您希望 T 根据所请求的型号而变化。

你想要/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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在asp.net mvc中是否可以制作通用控制器? 的相关文章

随机推荐