繁体   English   中英

ASP.NET 5,MVC6,WebAPI - > ModelState.IsValid始终返回true

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM