我正在使用ASP.NET Core 2.0默认的模型验证,但似乎无法正常工作,即使数据错误,ModelState.IsValid
始终为真。
[HttpPost("abc")]
public async Task<IActionResult> Abc([FromBody]AbcViewModel model)
{
if (!ModelState.IsValid) { return BadRequest(ModelState); }
...
}
public class AbcViewModel
{
[Required(ErrorMessage = "Id is required")]
[Range(100, int.MaxValue, ErrorMessage = "Invalid Id")]
public int Id { get; set; }
public bool Status { get; set; }
}
当我从Angular应用程序发布数据时,值正确地映射到模型,但是如果Id
为"0"或小于100,则Required
和Range
验证器都不起作用,并且ModelState.IsValid
始终为true。 我错过了什么?
Required
检查一个值不会是null
、空字符串或空格。在你的情况下,Id
是一个非空的int
,因此它总是提供一个值。 - John H