4

类中有没有类似ActionExecutingContext's ActionDescriptor.ActionParameters属性的东西ActionExecutedContext

我需要在这个阶段(OnActionExecuted)调查动作的参数。

4

3 回答 3

8

您可以像这样获取参数和值:

// Format the parameters based on our requirements: 
StringBuilder parameters = new StringBuilder();
foreach (var p in filterContext.ActionDescriptor.GetParameters())
{
     if (filterContext.Controller.ValueProvider.GetValue(p.ParameterName) != null)
     {
           parameters.AppendFormat("\r\n\t{0}\t\t:{1}", p.ParameterName,
                       filterContext.Controller.ValueProvider.GetValue(p.ParameterName).AttemptedValue);
     }
}
于 2013-02-20T01:32:01.193 回答
0

你要ActionExecutedContext.ActionDescriptor.GetParameters()方法吗?AFAIK 没有这样的ActionDescriptor.ActionParameters属性。是因为在您的代码中有一个派生类ActionDescriptor吗?

于 2012-05-03T09:36:56.277 回答
-1

您可以在 OnActionExecuting 方法中获得价值:

public override void OnActionExecuting(ActionExecutingContext filterContext)
{    
  var parameters = filterContext.ActionDescriptor.GetParameters();
  if (parameters.Length >= 1)
  {
    var p = parameters[0];
    var val = filterContext.ActionParameters[p.ParameterName];
    Type type = p.ParameterType;
  }
}
于 2018-05-28T10:13:14.007 回答