zoukankan      html  css  js  c++  java
  • 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了。

  • 相关阅读:
    复杂数据权限设计方案
    HTTP 错误 500.24
    C# 树形结构tree拼接
    MVC View返回list列表
    springboot使用validation 插件做数据校验
    java导出excel,多表头合并
    微信小程序表单验证
    springboot跑定时任务
    Springboot 上传excel并解析文件内容
    jmeter基本使用
  • 原文地址:https://www.cnblogs.com/basterdaidai/p/6679849.html
Copyright © 2011-2022 走看看