2011-12-24 44 views
3

如何從我的OnActionExecuting過濾器方法中獲取路由值。如何從ActionExecuting過濾器中獲取路由值?

我有以下兩個建議,但我仍然困惑:該方法

  1. 訪問您ControllerContext並允許您訪問RouteValues所以filterContext.Controller.RouteValues
  2. 訪問filterContext.Controller.RouteValues

我有例如方法:

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

如果我想獲得城市和街道的價值,那麼我該如何做到這一點。對不起,如果它看起來像一個基本的問題,但我不知道如何獲得上述。

回答

7

這,

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

我想你想搶先與 「請在此輸入代碼」 一些控制器動作(如Delete):

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

    // probably include this: 
    //base.OnActionExecuting(filterContext); 
}