在ASP.NET Core中,可以使用过滤器来进行参数验证。下面是一个包含代码示例的解决方法:
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class ValidateModelFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid)
{
context.Result = new BadRequestObjectResult(context.ModelState);
}
}
}
[ApiController]
[Route("api/[controller]")]
public class UserController : ControllerBase
{
[HttpPost]
[ValidateModelFilter] // 使用自定义的过滤器进行参数验证
public IActionResult CreateUser([FromBody] CreateUserModel model)
{
// 执行创建用户的逻辑
// ...
return Ok();
}
}
在上面的示例中,CreateUser
方法使用了ValidateModelFilter
过滤器来验证CreateUserModel
类型的参数。如果模型验证失败,将返回一个包含验证错误的BadRequest响应。
通过使用过滤器进行参数验证,可以将验证逻辑与控制器的实际业务逻辑分离,提高代码的可维护性和可读性。