2
在路由匹配后但执行匹配操作之前,是否有任何方法删除一些路由值。我的行动不包含一些路线值,我想删除它们。路由匹配后删除额外的路由值
换句话说,有一些路由的值不会在我的控制器中使用(但被过滤器使用),我不想保留它的行为。
在路由匹配后但执行匹配操作之前,是否有任何方法删除一些路由值。我的行动不包含一些路线值,我想删除它们。路由匹配后删除额外的路由值
换句话说,有一些路由的值不会在我的控制器中使用(但被过滤器使用),我不想保留它的行为。
我发现了一个简单的解决方案 - 定义自定义RouteHandler:
public class CustomMvcRouteHandler: MvcRouteHandler
{
protected override System.Web.IHttpHandler GetHttpHandler(RequestContext requestContext)
{
requestContext.RouteData.Values.Remove("someValue");
return base.GetHttpHandler(requestContext);
}
}
// ... and when defining the route, set the route handler to be your custom route handler
route.RouteHandler = new CustomMvcRouteHandler();
任何地方,你可以得到RouteData
的请求的保持你可以得到拨打:
RouteData.Values.Remove("keyNameOfParameterToRemove");
但这种带有没有做你想要它做的事情,的承诺,除非你可以扩大你为什么想要这样做,以便我可以测试这个特定的目标。
的问题并不是如何去除价值,但其中 – SiberianGuy
@Idsa:不够公平,一定要标记您自己的答案接受。 –