当前位置: 首页 > news >正文

MVC之 Controller 》》 ModelState ValidationMessageFor ValidationSummary

在这里插入图片描述
ModelState是Controller的一个属性,可以被继承自System.Web.Mvc.Controller的那些类访问。它表示在一次POST提交中被提交到服务器的 键值对集合,每个记录到ModelState内的值都有一个错误信息集。尽管ModelState的名字中含有“Model”,但它只有名称、值和错误集,与任何Model类都没有关系。
》》 ModelState有两个作用:
1:存储提交到服务器的值,
2:存储与之相关联的验证错误集。

在这里插入图片描述
在这里插入图片描述

ModelState 中错误集合,是记录 Model中特性标识,Require、StringLength、EmailAddress等

public class XXXModel
{[Required(ErrorMessage = "Please enter the user's first name.")][StringLength(50, ErrorMessage = "The First Name must be less than {1} characters.")][Display(Name = "First Name:")]public string FirstName { get; set; }[Required(ErrorMessage = "Please enter the user's last name.")][StringLength(50, ErrorMessage = "The Last Name must be less than {1} characters.")][Display(Name = "Last Name:")]public string LastName { get; set; }[EmailAddress(ErrorMessage = "The Email Address is not valid")][Required(ErrorMessage = "Please enter an email address.")][Display(Name = "Email Address:")]public string EmailAddress { get; set; }
}

同时要在csHTML 中 @Html.ValidationMessageFor()
》》请注意我们现在使用的两个帮助信息控件 ValidationSummary 和 ValidationMessageFor。
》》ValidationMessageFor则只显示其指定属性的错误信息摘要。
》》ValidationSummary控件将会读取模型中所有属性的错误信息摘要并显示在一个项目符号列表中;

@model ModelStateDemo.ViewModels.Home.xxxModel<h2>Add</h2>@using(Html.BeginForm())
{@Html.ValidationSummary()<div><div>@Html.LabelFor(x => x.FirstName)@Html.TextBoxFor(x => x.FirstName)@Html.ValidationMessageFor(x => x.FirstName)</div><div>@Html.LabelFor(x => x.LastName)@Html.TextBoxFor(x => x.LastName)@Html.ValidationMessageFor(x => x.LastName)</div><div>@Html.LabelFor(x => x.EmailAddress)@Html.TextBoxFor(x => x.EmailAddress)@Html.ValidationMessageFor(x => x.EmailAddress)</div><div><input type="submit" value="Save" /></div></div>
}

ModelState 自定义错误

[HttpPost]
public ActionResult Add(AddUserVM model)
{if(model.FirstName == model.LastName){ModelState.AddModelError("LastName", "The last name cannot be the same as the first name.");}if(!ModelState.IsValid){return View(model);}return RedirectToAction("Index");
}

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 小厂Java开发面经解析
  • 如何连接到公司的服务器?
  • 模板语法指令语法——02
  • 【Leetcode--旋转矩阵】
  • tkinter-TinUI-xml实战(12)pip可视化管理器
  • 新书速览|Vue.js 3.x+Express全栈开发:从0到1打造商城项目
  • 数据结构与算法(1):递归函数的设计技巧
  • PostgreSQl 物化视图
  • 秒懂设计模式--学习笔记(9)【结构型-装饰器模式】
  • nginx正向代理、反向代理、负载均衡
  • 【C++】构造函数详解
  • 机器人及其相关工科专业课程体系
  • 批量提取PDF指定区域内容到 Excel , 根据PDF文件第一行文字来自动重命名v1.3-附思路和代码实现
  • qt 返回上级页面
  • Java如何使用 HttpClientUtils 发起 HTTP 请求
  • @angular/forms 源码解析之双向绑定
  • 【React系列】如何构建React应用程序
  • Bytom交易说明(账户管理模式)
  • C++类中的特殊成员函数
  • Java读取Properties文件的六种方法
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • node和express搭建代理服务器(源码)
  • oldjun 检测网站的经验
  • Terraform入门 - 3. 变更基础设施
  • 初识 webpack
  • 构造函数(constructor)与原型链(prototype)关系
  • 如何正确配置 Ubuntu 14.04 服务器?
  • ​Java基础复习笔记 第16章:网络编程
  • ​第20课 在Android Native开发中加入新的C++类
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $.each()与$(selector).each()
  • (1) caustics\
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4)(4.6) Triducer
  • (LeetCode 49)Anagrams
  • (LLM) 很笨
  • (solr系列:一)使用tomcat部署solr服务
  • (办公)springboot配置aop处理请求.
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (排序详解之 堆排序)
  • (新)网络工程师考点串讲与真题详解
  • (一)SpringBoot3---尚硅谷总结
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Core 成都线下面基会拉开序幕
  • .NET Framework 3.5安装教程
  • .Net MVC + EF搭建学生管理系统
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件