[英]ASP.NET 5, MVC6, WebAPI -> ModelState.IsValid always returns true
我看过很多关于IsValid的帖子总是如实,但没有一个能帮助我解决这个问题。 我也在使用MVC5的ASP.NET 4中看到了这个问题。 很明显我在某个地方错过了一步。
控制器方法:
public IHttpActionResult Post([FromBody]ValuesObject value)
{
if (ModelState.IsValid)
{
return Json(value);
}
else
{
return Json(ModelState);
}
}
ValuesObject类:
public class ValuesObject
{
[Required]
public string Name;
[Range(10, 100, ErrorMessage = "This isn't right")]
public int Age;
}
POST的身体:
{
Age: 1
}
ModelState.IsValid为true。
但我希望Required和Range验证都失败。
我错过了什么?
谢谢,
凯文
您不能在模型中使用字段。 这是验证的一般条件之一 。
在ASP.NET Web API中,您可以使用System.ComponentModel.DataAnnotations命名空间中的属性为模型上的属性设置验证规则。
用属性替换它,一切都会正常工作:
public class ValuesObject
{
[Required]
public string Name { get; set; }
[Range(10, 100, ErrorMessage = "This isn't right")]
public int Age { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.