我有一个API方法,该方法接受Dictionary<string, object>
从HttpActionExecutedContext.ActionContext.ActionArguments
属性返回的(在WebApi操作过滤器中使用)。我需要从ActionExecutedContext
MVC动作过滤器中构造一个类似的字典,以便可以从mvc过滤器中使用相同的API调用。
我尝试了几种方法,但是它们并不是很严格。如果有简单的方法可以从ActionExecutedContext构造actionArguments字典,请告诉我。
//webapi - working fine
public override void OnActionExecuted(HttpActionExecutedContext context)
{
Call_A(context.ActionContext.ActionArguments)
}
//mvc- need to find a way to get argument dictionary
public override void OnActionExecuted(ActionExecutedContext context)
{
Call_A(context.?)
}
不知道这是否存在OnActionExecuted
,但肯定存在OnActionExecuting
。如果确实需要在Executed上使用它(如果它不存在,我认为不需要),则可以将其临时存储在过滤器中,例如:
public IDictionary<string, object> actionParams { get; set; }
public override void OnActionExecuting(ActionExecutingContext context)
{
this.actionParams = context.ActionParameters;
}
public override void OnActionExecuted(ActionExecutedContext context)
{
foreach (var param in this.actionParams) {
// param.Key
// param.Value
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句