我的Web API接收一个由(DateTime)dateFrom
,(DateTime)dateTo
组成的param对象。
目前我在API入口函数中预处理参数,这在整个API中都是重复的。
我希望我可以在参数进入API输入功能之前访问并修改。
所以我有下面的动作过滤器:
public class MyActionParamFilter : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
// pre-processing
object param;
object param2;
actionContext.Request.Properties.TryGetValue("dateFrom", out param);
actionContext.ActionArguments.TryGetValue("dateFrom", out param2);
}
}
从图像中可以清楚地看出,我已将参数传递给API。但我不知道为什么param
和param2
为空...
有可能实现吗?
答案 0 :(得分:0)
最后我按照这里的答案: Change webapi controller action parameter in delegatinghandler
从技术上讲,它是修改actionContext.ActionArguments
。
但我不太确定这是“最佳做法”还是其他什么。如果你认为我的设计方向错误,请告诉我你的想法。