2011-07-28 13 views
2

ルートが一致した後、一致するアクションが実行される前に、いくつかのルート値を削除する方法はありますか?私の行動にはいくつかのルート値が含まれていないので、それらを削除したい。ルートマッチング後に余分なルート値を削除する

つまり、私のコントローラでは使用されない(しかし、フィルタによって使用される)いくつかのルート値があり、動作させたくない。

答えて

3

私は簡単な解決策を発見した - カスタム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(); 
1

どこでもあなたが呼び出す取得することができ、要求のためのRouteDataのホールドを得ることができます。

RouteData.Values.Remove("keyNameOfParameterToRemove"); 

をしかし、あなたは、なぜあなたに拡大することができない限り、これは、あなたはそれが何をしたいのかやっていない約束が付属しています私はその特定の目標をテストすることができますこれをしたい。

+0

を質問は値を削除しますが – SiberianGuy

+0

@Idsaはどこにする方法はなかったです。 –

関連する問題