我有一个问题。
如果请求包含不存在的过滤器,ASP.NET核心中是否有一种方法可以在调用REST API控制器时返回BadRequestResult
?
样本方法定义
public async Task<IActionResult> GetUsers(string cardNr)
答案 0 :(得分:0)
您可以添加一个操作过滤器,用于检查查询参数是否与操作参数匹配:
public class ValidateQueryFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
var queryKeys = context.HttpContext.Request.Query.Keys;
var args = context.ActionArguments;
if (queryKeys.Any(k => !args.ContainsKey(k)))
{
context.Result = new BadRequestResult();
return;
}
base.OnActionExecuting(context);
}
}
在要进行参数验证的操作中添加此属性