我看过很多关于 IsValid 的帖子总是正确的,但没有一个能帮助我解决这个问题。我也在使用 MVC5 的 ASP.NET 4 中看到了这个问题。很明显我在某个地方错过了一步。
控制器方法:
public IHttpActionResult Post([FromBody]ValuesObject value)
{
if (ModelState.IsValid)
{
return Json(value);
}
else
{
return Json(ModelState);
}
}
值对象类:
public class ValuesObject
{
[Required]
public string Name;
[Range(10, 100, ErrorMessage = "This isn't right")]
public int Age;
}
帖子正文:
{
Age: 1
}
ModelState.IsValid 为 true。
但我预计必需验证和范围验证都会失败。
我缺少什么?
Thanks,
Kevin
您不能在模型中使用字段。它是一般条件之一 http://www.asp.net/web-api/overview/formats-and-model-binding/model-validation-in-aspnet-web-api供您验证。
在 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; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)