我正在使用ASP.NET Core。惯例是路由系统将FooController
类视为名为Foo
的控制器。
我需要覆盖这个约定。我想做这样的事情:
[ControllerName("Bar")]
public class SomeArbitraryName : Controller {
}
或者像这样:
public class SomeArbitraryName : Controller("Bar") {
}
这有可能吗?
编辑:没有关联"重复"问题不适用于ASP.NET Core!
答案 0 :(得分:3)
Asp.Net Core中仍然存在属性路由
[Route("Bar")]
public class SomeArbitraryName : Controller
{
// ...
}
请参阅Documentation: Routing to Controller Actions - Attribute Routing
答案 1 :(得分:0)
您可以在应用程序初始化步骤中的某个位置实现自己的System.Web.Mvc.IControllerFactory
并执行ControllerBuilder.Current.SetControllerFactory(new MyImpl())
编辑:此建议适用于ASP.NET MVC 5,而Core可能具有类似
的不同接口