如何检查参数是来自FormBody还是FormUri?

时间:2017-01-30 17:17:19

标签: c# .net asp.net-web-api

我在调用ActionMethod之前创建了通用的ActionFilter来验证所有HTTP请求。

我想过滤掉来自FormBody的参数。默认情况下,我的所有请求内容类型都是application / json。

这将使我能够调用JSON格式(非架构)验证器以向客户端回复正确的错误消息。

public class QueryStringParameterValidatorAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        var args = actionContext.ActionArguments;
        var parameters = actionContext.ActionDescriptor.GetParameters();//I want to filter out parameters coming from Form Body
    }
}

1 个答案:

答案 0 :(得分:2)

然后添加以下行:

foreach (var p in parameters)
{
    bool HasFromBodyAttribute = p.GetCustomAttributes<FromBodyAttribute>().Count > 0;   

    if(HasFromBodyAttribute)
    {
        // code here
    }

}