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");
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/46123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM监控及诊断工具-命令行篇-jstat命令介绍

JVM监控及诊断工具-命令行篇01-jstat&#xff1a;查看JVM统计信息 一 基本情况二 基本语法2.1 option参数1. 类装载相关的&#xff1a;2. 垃圾回收相关的-gc&#xff1a;显示与GC相关的堆信息。包括Eden区、两个Survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息…

2024 年全国青少年信息素养大赛 Python 小学组复赛真题

2024 年全国青少年信息素养大赛 Python 小学组复赛真题 《伶俐角少儿编程》gzh查看所有题目 第一题 题目描述 在一个神秘的王国里,国王希望通过一个简单的测试来评估他的子民对基础数学运算的掌握情况。他决定让每个人输入一个正整数 N (0≤N≤1000),然后计算并输出(5N)的值…

jmeter-beanshell学习9-放弃beanshell

写这篇时候道心不稳了&#xff0c;前面写了好几篇benashell元件&#xff0c;突然发现应该放弃。想回去改前面的文章&#xff0c;看了看无从下手&#xff0c;反正已经这样了&#xff0c;我淋了雨&#xff0c;那就希望别人也没有伞吧&#xff0c;哈哈哈哈&#xff0c;放在第九篇送…

python datetime库与时间戳timestamp的转换

文章目录 datetime常用函数datetime与timestamp转换 datetime常用函数 Python中的datetime模块是一个处理日期和时间的强大工具。下面是一些常用的datetime方法和属性&#xff1a; datetime.now()&#xff1a;返回当前日期和时间的datetime对象。 from datetime import date…

数据结构第26节 广度优先搜索

广度优先搜索&#xff08;Breadth-First Search&#xff0c;简称BFS&#xff09;是一种用于遍历或搜索树或图数据结构的算法。其主要特性是以层级顺序遍历图的所有节点&#xff0c;从一个指定的起点开始&#xff0c;首先访问所有直接相连的邻居节点&#xff0c;然后再访问它们的…

智慧商超-下

原文&#xff1a;https://blog.c12th.cn/archives/29.html 智慧商超-下 测试&#xff1a;笔记本原装操作系统&#xff1a;Windows 10 家庭中文版 资源分享链接&#xff1a;提取码&#xff1a;uya0 卸载SQL步骤&#xff1a; https://blog.csdn.net/qq1623803207/article/detail…

Linux yum-config-manager命令教程:轻松管理YUM软件源(附实例详解和注意事项)

Linux yum-config-manager命令介绍 yum-config-manager 是一个用来管理 YUM 软件源的工具&#xff0c;它允许用户启用、禁用、添加或删除软件源。这个命令对于 Linux 系统管理员来说非常重要&#xff0c;因为它可以帮助他们控制软件包的来源&#xff0c;确保系统安装的软件是最…

自定义json序列化和反序列化

一、LocalDateTime反序列化异常 首先我们定义一个java POJO实体类&#xff0c;其中关键的成员变量时birthDate,我们没有采用Date数据类型&#xff0c;而是采用了Java8 新的日期类型LocalDateTime,使用LocalDateTime的好处我就不多说了&#xff0c;有很多的文章解释说明。我们把…

Java常见JUC并发工具类

Lock 并发编程领域的两大核心问题&#xff1a; 一个是 互斥&#xff0c;即同一时刻只允许一个线程访问共享资源 另一个是 同步&#xff0c;即线程之间如何通信、协作 这两大问题&#xff0c;管程&#xff08;synchronized&#xff09;都是能够解决的。Java SDK并发包通过Lock和…

详解一下马拉车算法 Manache算法 使用c++

马拉车算法是寻找最长回文子串的高效算法&#xff0c;时间复杂度为O&#xff08;n&#xff09; #include <iostream> #include <string> #include <vector> using namespace std;string longestPalindrome(string s) {// 步骤1: 预处理&#xff0c;在字符间…

【Linux】进程控制的详细介绍

前言 在此之前&#xff0c;我们学过进程的概念&#xff0c;进程的状态&#xff0c;进程地址空间等一系列进程相关的问题。本章我们继续学习进程&#xff0c;我们要来学习一下进程的控制&#xff0c;关于进程等待&#xff0c;进程替换等问题。 目录 1.再次认识Fork函数1.1 fork…

internet download manager(IDM下载器) 6.42.8.2下载安装使用指南

internet download manager(IDM下载器) 6.42.8.2Z是一款功能强大的下载加速工具&#xff0c;能够显著提升您的下载速度&#xff0c;最高可达500%。它不仅能够加速下载&#xff0c;还能对下载任务进行智能调度&#xff0c;并具备恢复中断下载的能力。根据用户评价&#xff0c;无…

初识C++(命名空间、缺省参数)

初识C 命名空间namespace关键字命名空间的使用 缺省参数 命名空间 namespace关键字 在C中&#xff0c;为了尽可能避免命名冲突&#xff0c;需要对各个变量进行域作用限定&#xff0c;这就需要使用到namespace关键字&#xff0c;namespace可以定义一个命名空间&#xff0c;即命…

LabVIEW红外热波图像缺陷检

开发使用LabVIEW开发的红外热波图像缺陷检测系统。该系统结合红外热像仪、工业相机和高效的数据采集硬件&#xff0c;实现对工件表面缺陷的自动检测和分析。通过LabVIEW的强大功能&#xff0c;系统能够实时采集、处理和显示红外热波图像&#xff0c;有效提高了检测的精度和效率…

vue:标签属性绑定Vue实例【ref,reactive,内置指令v-bind,v-on】,预定义变量、方法【$methods,$computed】

Vue2、3组件通信、双向绑定、插槽slot、内置指令_组件双向绑定-CSDN博客​Vue2&#xff0c;3响应式原理&#xff0c;ref和reactive&#xff0c;toRef和toRefs&#xff0c;shallowRef和shallowRefs_vue2 shallowref-CSDN博客 vue2【Options 选项API、mixin混入】&#xff0c;vu…

WAF基础介绍

WAF 一、WAF是什么&#xff1f;WAF能够做什么 二 waf的部署三、WAF的工作原理 一、WAF是什么&#xff1f; WAF的全称是&#xff08;Web Application Firewall&#xff09;即Web应用防火墙&#xff0c;简称WAF。 国际上公认的一种说法是&#xff1a;Web应用防火墙是通过执行一…

免开steam 脱离steam 进行游戏的小工具

链接&#xff1a;https://pan.baidu.com/s/1k2C8b4jEqKIGLtLZp8YCgA?pwd6666 提取码&#xff1a;6666 我们只需选择游戏根目录 然后输入AppID 点击底部按钮 进行就可以了 关于AppID在&#xff1a;

机器学习——L1 L2 范数 —>L1 L2正则化

1、L1范数和L2范数是机器学习和数据分析中经常使用的两种范数&#xff0c;它们之间存在多个方面的区别。 以下是关于L1范数和L2范数区别的详细解释&#xff1a; 一、定义差异 L1范数&#xff1a;也被称为曼哈顿范数&#xff0c;是向量元素的绝对值之和。对于一个n维向量x&am…

酒店管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;酒店管理员管理&#xff0c;房间类型管理&#xff0c;房间信息管理&#xff0c;订单信息管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;房间信息…

Linux介绍与常用命令详解

目录 一、Linux概述 1.Linux发行版 2.Linux目录结构 二、Linux特点 三、Linux用途 四、Linux常用的命令 1.cd指令&#xff08;跳转位置&#xff09; 2.显示目录文件 3.对文件进行操作 4.rm指令&#xff08;删除文件夹指令&#xff09; 5.mv指令 6.查看文件命令 7.进程命令…