【发布时间】:2018-08-16 06:09:32
【问题描述】:
如果收到的请求是 BadRequest,我有一个应用逻辑,为此我创建了一个过滤器:
public class ValidateModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid)
{
// Apply logic
}
}
}
在启动中:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options => { options.Filters.Add<ValidateModelAttribute>(); });
}
控制器:
[Route("api/[controller]")]
[ApiController]
public class VerifyController : ControllerBase
{
[Route("test")]
[HttpPost]
[ValidateModel]
public ActionResult<Guid> validationTest(PersonalInfo personalInfo)
{
return null;
}
}
型号:
public class PersonalInfo
{
public string FirstName { get; set; }
[RegularExpression("\\d{4}-?\\d{2}-?\\d{2}", ErrorMessage = "Date must be properly formatted according to ISO 8601")]
public string BirthDate { get; set; }
}
问题是当我在行上放一个断点时:
if (!context.ModelState.IsValid)
仅当我发送的请求有效时,执行才会到达此行。为什么我发送一个错误的请求它没有通过过滤器?
【问题讨论】:
标签: c# asp.net-core asp.net-core-mvc