使用库AttributeRouting,我能够将属性路由配置为--使用自定义路由处理程序(继承MvcRouteHandler):
routes.MapAttributeRoutes(cfg =>
{
cfg.UseRouteHandler(() => new MultiCultureMvcRouteHandler());
}
);此外,在MVC5之前,可以更改任何现有路由的路由处理程序:
(routes["myroute"] as Route).RouteHandler = new MyCustomRouteHandler();对于使用属性路由的MVC5,路由集合包含内部类(例如RouteCollectionRoute),并且似乎不可能更改路由的RouteHandler属性。
如何更改在MVC5.1中使用属性路由时使用的默认路由处理程序?
发布于 2014-03-28 12:39:20
创建您自己的RouteAttribute。
查看这里的文档:http://msdn.microsoft.com/en-us/library/system.web.mvc.routeattribute(v=vs.118).aspx
实现这些接口,在CreateRoute方法中,您可以为RouteEntry对象选择路由处理程序。
我还没有试过,但像下面这样的东西,你需要做更多的工作,但这应该会让你走上正轨。
public class MyRouteAttribute : Attribute, IDirectRouteFactory, IRouteInfoProvider
{
public RouteEntry CreateRoute(DirectRouteFactoryContext context)
{
return new RouteEntry("Test", new Route("Url", new CustomRouteHandler()));
}
public string Name
{
get { throw new NotImplementedException(); }
}
public string Template
{
get { throw new NotImplementedException(); }
}
}https://stackoverflow.com/questions/22375336
复制相似问题