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了。

  • 相关阅读:
    js判断手机访问网站自动跳转到手机版
    php 操作数组 (合并,拆分,追加,查找,删除等)
    jQuery传值方法汇总:jQuery.get、jQuery.getJSON、jQuery.post
    JS 页面跳转
    优秀的项目管理者书籍
    Python 的人生
    架构设计流程梳理
    重新定义自己思考问题的方式
    梳理
    程序员高效工具列表
  • 原文地址:https://www.cnblogs.com/wugh8726254/p/14879643.html
Copyright © 2011-2022 走看看