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

  • 相关阅读:
    (五)TortoiseSVN 客户端-----安装
    (四)svn 服务器端的使用之创建工程目录
    (三)svn 服务器端之创建仓库
    (二)svn服务端安装配置
    (一)svn介绍
    JFinal常量配置学习笔记
    继承、多态、重载和重写
    聊聊基本类型(内置类型)
    日期和时间的处理
    设计模式——享元模式
  • 原文地址:https://www.cnblogs.com/wugh8726254/p/14879643.html
Copyright © 2011-2022 走看看