当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《ASP.NET5,MVC6,WebAPI->ModelState.IsValid始终返回true》经验,为你挑选了1个好方法。

我看过很多关于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验证都失败.

我错过了什么?

谢谢,

凯文



1> Vadim Martyn..:

您不能在模型中使用字段.这是验证的一般条件之一.

在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; }
}

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有