WebAPI 2.0忽略空查询字符串参数

时间:2018-06-18 07:10:21

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

在WebAPI 2.0控制器中,如果我使用可选参数,那么如果我根本没有传递它们,那么每个标记都可以正常工作。

http://domain/GetStuff
http://domain/GetStuff?name=alex

问题是,当我传递一个空参数时,验证失败,说该参数是必需的。

http://domain?name=

有没有办法告诉WebAPI忽略空参数?

任何带有可选参数的控制器都可以:

public async Task<HttpResponseMessage> GetStuff(string name = null)
{
    // do something
}

正在使用以下过滤器检查验证:

public class ValidateModelAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        if (actionContext.ModelState.IsValid == false)
        {
            actionContext.Response = actionContext.Request.CreateErrorResponse(
                HttpStatusCode.BadRequest, actionContext.ModelState);
        }
    }
}

0 个答案:

没有答案