2011-12-24 14 views
3

私のOnActionExecutingフィルタ方法の中からルート値を取得するにはどうすればいいですか?ActionExecutingフィルタの内部からルート値を取得するにはどうすればよいですか?

私は、次の2つの提案があったが、私はまだ混乱しています:

  1. のアクセス方法では、あなたのControllerContextをし、それはあなたがRouteValuesへのアクセスを私は持っているので、filterContext.Controller.RouteValues
  2. アクセスfilterContext.Controller.RouteValues

を与えます例えば、方法:

public ActionResult Delete(string city, string street) { 
    //enter code here 
} 

市と通りの価値を得たいなら、どうすればいいのですか?申し訳ありませんが基本的な質問のように思えるが、私は上記の方法にアクセスする方法がわからない。

答えて

7

ここでは、私はあなたが "ここにコードを入力してください" といくつかのコントローラのアクション(のようなDelete)先取りしようとしていると考え、

protected override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     var parameters = filterContext.ActionParameters; 
     var email = parameters["email"]; 
     var city = parameters["city"]; 
    } 
1

です:

protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    string city = filterContext.ActionParameters["city"]; 
    string street = filterContext.ActionParameters["street"]; 

    // probably include this: 
    //base.OnActionExecuting(filterContext); 
} 
関連する問題