在 ASP.NET MVC 中,如何在不使用“控制器”后缀的情况下制作控制器类?我在网上找不到解决方案。MSDN 文档说控制器类名必须以“控制器”结尾。
有高手能帮帮我吗?
谢谢你。
杰瑞
在 ASP.NET MVC 中,如何在不使用“控制器”后缀的情况下制作控制器类?我在网上找不到解决方案。MSDN 文档说控制器类名必须以“控制器”结尾。
有高手能帮帮我吗?
谢谢你。
杰瑞
DefaultControllerFactory
您必须通过继承并覆盖该GetControllerType
方法来使用自定义控制器工厂。
// instantiate controllers that doesn't have "Controller" suffix.
public class CustomControllerFactory: DefaultControllerFactory
{
protected override Type GetControllerType(System.Web.Routing.RequestContext requestContext, string controllerName)
{
var controllersNs = "MvcApp.Controllers";
return Type.GetType(string.Format("{0}.{1}", controllersNs, controllerName));
}
}
你必须在 Global.asax.cs 中注册这个控制器工厂。
ControllerBuilder.Current.SetControllerFactory(new CustomControllerFactory());
重要提示:DefaultControllerFactory
通过缓存类型和其他内容来提高性能,您必须查看源代码以获得更好的想法。