【问题标题】:Is it possible to modify Web Api Parameter (FromUri) inside Action Filter?是否可以在动作过滤器中修改 Web Api 参数(FromUri)?
【发布时间】:2018-04-05 10:47:08
【问题描述】:

我的 Web API 接收到一个由 (DateTime) dateFrom、(DateTime) dateTo 组成的参数对象。

目前我在我的 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。但我不知道为什么paramparam2 为空...

有可能实现吗?

【问题讨论】:

标签: asp.net-web-api2 action-filter


【解决方案1】:

最后我在这里遵循答案: Change webapi controller action parameter in delegatinghandler

技术上就是修改actionContext.ActionArguments

但我不太确定这是否是“最佳实践”或其他什么。如果您认为我的设计方向错误,请告诉我您的想法。

【讨论】:

    猜你喜欢
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多