gpt4 book ai didi

asp.net-mvc - 使用带有 MVC5 属性路由的自定义路由处理程序

转载 作者:行者123 更新时间:2023-12-01 06:30:39 54 4
gpt4 key购买 nike

使用库 AttributeRouting ,我能够将属性路由配置到 使用自定义路由处理程序 (继承 MvcRouteHandler ):

routes.MapAttributeRoutes(cfg =>
{
cfg.UseRouteHandler(() => new MultiCultureMvcRouteHandler());
}
);

此外,在 MVC5 之前,可以更改任何现有路由的路由处理程序:
(routes["myroute"] as Route).RouteHandler = new MyCustomRouteHandler();

对于使用属性路由的 MVC5,路由集合包含 内部 类(例如 RouteCollectionRoute)并且似乎无法更改路线的 RouteHandler属性(property)。

如何更改在 MVC5.1 中使用属性路由时使用的默认路由处理程序?

最佳答案

创建您自己的 RouteAttribute。

在此处查看文档:http://msdn.microsoft.com/en-us/library/system.web.mvc.routeattribute(v=vs.118).aspx

实现这些接口(interface),在 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(); }
}
}

关于asp.net-mvc - 使用带有 MVC5 属性路由的自定义路由处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22375336/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com