如何从ONActionExecuting过滤器中获取路由值?

时间:2011-12-24 03:29:46

标签: asp.net-mvc asp.net-mvc-3

如何从OnActionExecuting过滤器方法中获取路线值。

我有以下两个建议,但我仍感到困惑:

  1. 访问方法中的ControllerContext,这样您就可以访问RouteValues filterContext.Controller.RouteValues
  2. 访问filterContext.Controller.RouteValues
  3. 我有例如方法:

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

    如果我想获得城市和街道的价值,那么我该怎么做呢。对不起,如果它看起来像一个基本的问题,但我不知道如何访问上述。

2 个答案:

答案 0 :(得分:9)

在这里,

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

答案 1 :(得分:1)

我认为您试图通过“在此处输入代码”来抢占某些控制器操作(例如Delete):

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

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