zoukankan      html  css  js  c++  java
  • ModelState

    https://www.cnblogs.com/basterdaidai/p/6679849.html

    ASP.NET MVC里ModelState.IsValid总是true或者总是false
    model的属性如果不加验证相关的特性,ModelState.IsValid会永远为true;如果加了验证相关的特性,不满足验证规则时,ModelState.IsValid为false.
    接收到参数属性类型与Model定义不符时,ModelState.IsValid也会为false.

    参数模型:

    复制代码
    public class PersonModel
    {
    public string FirstName { get; set; }

    public string LastName { get; set; }

    public int Status { get; set; }
    }
    复制代码


    控制器代码

    复制代码
         [HttpPost]
    public string ReceivePerson(PersonModel model)
    {
    if (!ModelState.IsValid)
    {
    var msg = string.Empty;
    foreach(var value in ModelState.Values)
    {
    if(value.Errors.Count>0)
    {
    foreach(var error in value.Errors)
    {
    msg = msg + error.ErrorMessage;
    }
    }
    }
    return msg;
    }
    else
    return "成功";
    }

    public string Index()
    {
    return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
    }
    复制代码
    当给Status传一个“*”时,ModelState.IsValid为false,错误信息为:值“*”对于 Status 无效。

    如果给某个Model的某个字段加上验证特性,比如LastName必需:

    复制代码
    public class PersonModel
    {
    public string FirstName { get; set; }

    [Required()]
    public string LastName { get; set; }

    public int Status { get; set; }
    }
    复制代码
    当LastName为空时,可以看到ModelState.IsValid为false,错误信息为:LastName 字段是必需的。

    现在可以知道ModelState.IsValid总是为false或总是为true了。

  • 相关阅读:
    CSS定位 position
    时间日期类--显示时间
    【HDOJ】4775 Infinite Go
    【HDOJ】4297 One and One Story
    【HDOJ】4056 Draw a Mess
    【HDOJ】2242 考研路茫茫——空调教室
    【HDOJ】3828 A + B problem
    【HDOJ】3386 Final Kichiku “Lanlanshu”
    【HDOJ】1648 Keywords
    【HDOJ】1699 The comment in cpp
  • 原文地址:https://www.cnblogs.com/wugh8726254/p/14879643.html
Copyright © 2011-2022 走看看