ルートが一致した後、一致するアクションが実行される前に、いくつかのルート値を削除する方法はありますか?私の行動にはいくつかのルート値が含まれていないので、それらを削除したい。ルートマッチング後に余分なルート値を削除する
つまり、私のコントローラでは使用されない(しかし、フィルタによって使用される)いくつかのルート値があり、動作させたくない。
ルートが一致した後、一致するアクションが実行される前に、いくつかのルート値を削除する方法はありますか?私の行動にはいくつかのルート値が含まれていないので、それらを削除したい。ルートマッチング後に余分なルート値を削除する
つまり、私のコントローラでは使用されない(しかし、フィルタによって使用される)いくつかのルート値があり、動作させたくない。
私は簡単な解決策を発見した - カスタム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はどこにする方法はなかったです。 –