在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);
}
}
}