BadRequest 根据不存在的过滤器请求

BadRequest on request with nonexistent filter

我有一个问题。 如果请求包含不存在的过滤器,在调用 REST API 控制器时 ASP.NET 核心是否有方法 return BadRequestResult

示例方法定义 public async Task<IActionResult> GetUsers(string cardNr)

您可以添加一个操作过滤器来检查查询参数是否与操作参数匹配:

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

并在需要参数验证的操作上添加此属性