ActionExecutingContext's ActionDescriptor.ActionParameters
类中有ActionExecutedContext
属性吗?
我需要在此阶段调查操作的参数(OnActionExecuted
)。
答案 0 :(得分:6)
您可以像这样获取参数和值:
// 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);
}
}
答案 1 :(得分:0)
您想要ActionExecutedContext.ActionDescriptor.GetParameters()
方法吗? AFAIK没有这样的ActionDescriptor.ActionParameters
属性。是因为在您的代码中有一个派生类ActionDescriptor
?
答案 2 :(得分:0)
你可以在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;
}
}