asp.net mvc 3.0详细笔记__17__使用 DataAnnotations 进行模型验证

使用 pip 安装 pygame 遇到的问题 今天尝试学习使用 pygame 时,按照我的习惯一发 pip install 下去,本以为很简单的事情,没想到遇到了不少问题,顺手记录一下。 0x01. 无法找到 “SDL.h” 文件 pygame 是使用 SDL 库写就的游戏框架,自然强依赖于 SDL,我的 python@3 是使用 macOS 的 brew 管理器直接安装的,可能由于不是编译安装的问题,缺少了这个库,继续使用 brew 安... 阅读详情

         欢迎一起来学习MVC 3.0,我们在一步一个脚印的做一个MVC 3.0的项目,期间会有很多值得探索的地方。将会学到Razor,Lampda,Entity Framework,Linq C#新特性等等知识,一起加油吧!

说起验证,大家都很熟悉了,各种验证手段也层出不穷,那么微软的asp.net mvc 3.0为我们提供了什么样的验证理念呢?今天我们就来深入剖析以下.

(1)首先分析验证的目的:防止用户通过输入对程序造成安全方面的隐患。说白了,就是防止用户将某些不符合规则,甚至对程序造成某种破坏的数据提交到数据库。

微软认为:既然验证的东西是针对数据库的数据,而asp.net mvc 3.0又将mvc中的M(Model)与数据库紧密联系起来,因此微软决定在M(模型)这块下手,之前我们的模型层的类中隐隐约约看见过一些解释性样式的文字,具体案例参考StoreManager控制器下的Edit方法和StoreManager文件夹下的Edit.cshtml视图文件,部分Edit方法如代码1.1

代码1.1

        /// <summary>
        /// 唱片价格
        /// </summary>
        [Required(ErrorMessage = "唱片必须有价格!")]
        [Range(0.01, 100.00, ErrorMessage = "范围必须从 0.01 到 100.00")]
        public Nullable<decimal> Price { get; set; }
其中Required和Range就是用于验证而提供的关键字,同属于DataAnnotations

(2)常用的DataAnnotations如下所示:

Required 必须 – 表示这个属性是必须提供内容的字段
DisplayName 显示名 – 定义表单字段的提示名称
StringLength 字符串最大长度 – 定义字符串类型的属性的最大长度
Range 范围 – 为数字类型的属性提供最大值和最小值
Bind 绑定 – 列出在将请求参数绑定到模型的时候,包含和不包含的字段
ScaffoldColumn 支架列 - 在编辑表单的时候,需要隐藏起来的的字符

(3)虽然在模型层对一些字段进行了验证信息的声明,但最终还是需要在视图一侧调用这份声明才会真正的去验证,有时候验证没效果大概就是声明了而没有去调用的缘故。因此在视图页面里首先要做的是:在表单范围内要用@Html.ValidationSummary(true)调用验证;这还不算完,因为在页面上,一般要把错误提示显示在当前字段的后面,因此你还要在显示信息的位置调用验证,

如对以上价格的验证

@Html.EditorFor(model => model.Price)

@Html.ValidationMessageFor(model => model.Price)

(4)执行程序,在编辑的页面的价格输入框中输入"5555555",点击"Save"如图4.1所示,验证成功。

图4.1





被搜狗输入法背刺了!偷偷装的 “AI 汪仔” 狂占 CPU!手把手教你如何彻底关闭删除搜狗AI功能AI汪仔 手把手教你如何彻底关闭删除搜狗输入法的AI汪仔🚀 阅读详情

相关推荐

centos7 清理缓存

一、系统环境 系统版本 CentOS Linux release 7.3.1611 (Core) 内核版本 Linux xx-user 3.10.0-514.el7.x86_64 #1 SMP 背景 服务器分配的账号是普通用户,只能执行sudo命令 二、缓存查看及基本概念 查看内存使用情况 [user01@xx-user ~]$ free -h total used free shared buff/cache availabl

sunzq55的博客 4006

asp.net core webapi中的数据注解与数据验证

数据注解是 .NET 提供的一种用于模型属性的元数据标注方式。它通过在模型类的属性上应用特定的特性(Attribute)来定义验证规则。数据注解通常用于验证用户输入、控制数据存储格式、设置显示格式等。Required:表示该字段是必填的。:限制字符串的最大长度或最小长度。Range:指定数值字段的允许范围。:验证电子邮件地址的格式。:验证输入是否匹配特定的正则表达式。Compare:验证两个字段的值是否相等(例如密码确认)。CreditCard:验证信用卡号的格式。Url。

情绪不稳定的98年程序员 1359

Win11+Ubuntu18.04+Ubuntu20.04三系统安装与卸载

以下情况均为个人情况:1.插入启动 U 盘后,登录时可以按F12(拯救者Y7000,不同电脑不同)进入BIOS,选择从启动盘启动。2.。3.5.在win基础上,安装第一个Ubuntu系统后,系统启动界面类似如下第一张图,Ubuntu不显示版本号。安装第二个Ubuntu系统后,系统启动界面如下第二张图,如果想更改启动项的名称,可自行查阅相关资料。

weixin_61686291的博客 2539

asp.net mvc5 step by step(二)——Data Annotations(data 注释)

  以下使用在Entity FrameworkCode First  Entity FrameworkCode First利用一种被称为约定(Conventions)优于配置(Configuration)的编程模式允许你使用自己的domain classes来表示EF所依赖的模型去执行查询、更改追踪、以及更新功能,这意味着你的domain classes必须遵循 EF...

weixin_30414245的博客 300

Oracle EBS订单的流程(Order->AR)

基本流程创建订单路径:Order Management > Orders,Returns > Sales Orders填写订单头信息,客户,订单类型,销售人员填写订单体信息,输入物料,数量...然后Book Order,订单Book之后,你会发现订单头的Status的状态变成了“Booked”,订单行的状态为"Awaiting Shipping",记录下来你的订单号,后边的每一步都需要这个订单号。

田攀的日志 4万+

计算机网络期末复习提纲(全知识点总结)

计算机网络期末复习提纲全知识点总结第一章 概述1.基本概念- 链路,结点,协议和服务,实体和对等实体,各层PDU- C/S模式,B/S模式,P2P模式- LAN,WAN,MAN,PAN的划分- 网络性能参数:速率,带宽,吞吐量,时延,往返时间,信道利用率2.互联网的组成(边缘部分与核心部分的作用)3.电路交换与分组交换,数据报交换和虚电路交换的特点4.TCP/IP体系结构,数据的封装与解封装第二章 物理层1.信号编码:不归零编码,曼切斯特编码2.影响信号失真程度的因素3.传输介质:双绞线,同轴电缆,光纤(单

mcyuuji的博客 8万+

ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidator

对于ASP.NET MVC基于标注特性的Model验证,很多人只知道应用在数据类型及其属性上用于定义验证规则和错误消息的ValidationAttribute。通过《ASP.NET MVC以ModelValidator为核心的Model验证体系: ModelValidator》的介绍,我们知道了最终用于进行Model验证的是一个叫做ModelValidator的组件。ValidationAtt...

weixin_34368949的博客 186

2024“华为杯”中国研究生数学建模竞赛(A题)深度剖析_数学建模完整过程+详细思路+代码全解析

目标是优化风力涡轮机的功率调度,使其在给定的实时风速数据下,最小化涡轮机关键组件(如塔架和主轴)的疲劳损伤。问题的挑战在于,考虑通信延迟和测量噪声的同时,要确保功率输出与风速变化的响应快速且准确。

2401_82549447的博客 6632

使用 DataAnnotations(数据注解)实现通用模型数据校验

在实际项目开发中,无论任何方式、任何规模的开发模式,项目中都离不开对接入数据模型参数的合法性校验,目前普片的开发模式基本是前后端分离,当用户在前端页面中输入一些表单数据时,点击提交按钮,触发请求目标服务器的一系列后续操作,在这中间的执行过程中(标准做法推荐)无论是前端代码部分

寒冰屋的专栏 2645

云计算学习——5G网络技术

华为eNSP网络设备模拟器的基础安装及简单使用

qq_42520799的博客 1445

自监督学习与上下文赌博机融合:视觉决策中的协同优化与实战指南

在机器学习领域,自监督学习(Self-Supervised Learning)通过设计前置任务从无标注数据中学习通用表征,已成为解决标注数据稀缺问题的关键技术。其核心原理是利用数据自身的结构生成监督信号,训练编码器提取鲁棒特征。上下文赌博机(Contextual Bandits)作为强化学习的简化分支,专注于在给定上下文信息下做出单步最优决策,平衡探索与利用,广泛应用于推荐系统、广告投放等场景。将两者结合,构建端到端的协同训练框架,能让视觉表征的优化直接服务于最终的决策目标,同时利用自监督任务作为正则化项提

weixin_33721344的博客 520

Asp.Net MVC 使用 DataAnnotations 进行模型验证

通过为模型类增加数据描述的 DataAnnotations ,我们可以容易地为应用程序增加验证的功能。DataAnnotations 允许我们描述希望应用在模型属性上的验证规则,ASP.NETMVC 将会使用这些 DataAnnotations ,然后将适当的验证信息返回给用户。 常用的 DataAnnotations 包括: Required 必须 – 表示这个属性是必须提供...

asdas1246354354的专栏 340

【100%通过率】华为od机试C卷【出差 / 员工派遣】Java&Go 实现

某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则:

MISAYAONE的博客 2642

asp.net MVc 数据验证

asp.net mvc 之 asp.net mvc 3.0 新特性之 Model: 通过 Data Annotations 与 jQuery 的结合实现服务端和客户端的双重验证 双重验证中,使客户端实现远程的异步验证 自定义 Data Annotations 与 jQuer

wanglei_smartfish的专栏 3826

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

net core mvc 数据绑定 《1》数据验证 客户端验证 远程验证 DataAnnotations

但是从可读性和可维护性的角度来看,更好的方法是使用专门的模型来把数据公开给控制器。这种模型有时被称为 【输入模型】。使用输入数据的原生请求集合是可以工作的【request[],Querystring,request.from[]】,,使用内置的规则集将来自各种值提供程序的原始请求数据映射到输入模型类的属性。模型绑定首先在表单数据中搜索值,因此大多数情况下我们不需要添加这个特性。[FromForm]特性告诉模型绑定从提交的表单域中获取值,3 模型绑定复杂的集合类型。》》》声明一个Model。

Kaizen的博客 1187

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ASP.NET-MVC-模型注解验证

Required ——必填,如联系方式必填写 StringLength——验证长度,如验证密码必须为6位 RegularExpression——指定规则验证,如验证邮箱格式 Range——验证范围,如验证人的年龄为1-130之间 Compare——验证比较,如验证两次输入密码是否匹配 Remove——验证回调验证,如回调验证数据库中重复姓名 在ASP.NET MVC中,验证特性定义在System.ComponentModel.DataAnnotations命名空间中,因此我们在使用验证特性前,需要

qq_45262877的博客 1061

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ASP.NET MVC 3.0学习系列文章—Model in ASP.NET MVC 3.0

系列文章 ASP.NET MVC 3.0学习系列文章—序 ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章—Controllers in ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章--Dependency Resolution in ASP.NET M...

weixin_33912453的博客 111

ASP.NET MVC 数据验证进阶:用 IValidatableObject 实现自定义验证逻辑 引言:为什么需要 “自定义验证”?

你有没有遇到过这样的场景?在电商平台下单时,系统提示 “折扣金额不能超过订单总额的 20%”;预订酒店时,“入住日期必须早于退房日期”。这些验证规则不是简单的 “必填”“范围”,而是多个字段联动的复杂逻辑—— 此时,DataAnnotations提供的[Required] [Range]等 “标准工具” 就不够用了。在ASP.NET MVC 中,IValidatableObject接口就是为这类场景设计的 “定制工具”。它允许我们编写灵活的、跨字段的验证逻辑,让数据验证更贴合业务需求。

William_cl的博客 916

ASP.NET MVC 音乐商店 - 6. 使用 DataAnnotations 进行模型验证

MusicStore 项目的完整配套视频! 在前面的创建专辑与编辑专辑的表单中存在一个问题:我们没有进行任何验证。字段的内容可以不输入,或者在价格的字段中输入一些字符,在执行程序的时候,这些错误会导致数据库保存过程中出现错误,我们将会看到来自数据库的错误信息。 通过为模型类增加数据描述的 DataAnnotations ,我们可以容易地为应用程序增加验证的功能。DataAnnotations ...

ziqi688的博客 105

.net mvc Model 验证总结

ASP.NET MVC4中的Model是自验证的,这是通过.NET4的System.ComponentModel.DataAnnotations命名空间完成的。 我们要做的只是给Model类的各属性加上对应的验证标记(Attributes)就可以让MVC4框架帮我们完成验证。我以MVC4项目模板自带的登录 做例子讲解Model的验证。 一、启用客户端验证: 客户端验证主要是为了提高用户体验

dgdisme 2431

Asp.Net MVC4.0 官方教程 入门指南之九--为模型添加验证

Asp.Net MVC4.0 官方教程 入门指南之九--为模型添加验证

月亮哥的专栏 373

DataAnnotations 验证

常用的 DataAnnotations Required :属性值必须非空或者不能只是空格,如果允许全空格可以[Required(AllowEmptyStrings = true)] DisplayName :显示名 – 定义表单字段的提示名称 StringLength :字符串长度不能超过给定的最大长度,也可以指定最小长度:[StringLength(10, MinimumLength=2)] Range :范围 – 数字的可输入范围[Range(10, 20)] ,属性值必须在指定的数值

极客神殿 807

asp.net mvc Model验证总结及常用正则表达式

ASP.NET MVC3中的Model是自验证的,这是通过.NET4的System.ComponentModel.DataAnnotations命名空间完成的。 我们要做的只是给Model类的各属性加上对应的验证标记(Attributes)就可以让MVC3框架帮我们完成验证。我以MVC3项目模板自带的登录 做例子讲解Model的验证。 一、启用客户端验证: 客户端验证主要是为了提...

diaozhouzhou1727的博客 304

【翻译】ASP.NET MVC4 入门(八) 为Model添加验证规则

原文链接:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-validation-to-the-model 在这一小节,我们将会给Movie模型添加验证规则,这样当用户试图新加或者编辑一部电影的数据时将会确保这些数据是符合验证逻辑的。 保持事请DRY ASP.NET MVC的...

djk2045的博客 290

ASP.NET Core3.1 MVC 添加验证规则

本节内容: 向Movie模型添加了验证逻辑。 确保每当用户创建或编辑电影时,都会强制执行验证规则。 坚持 DRY 原则 MVC 的设计原则之一是DRY(“不要自我重复”)。ASP.NET Core MVC 支持你仅指定一次功能或行为,然后使它应用到整个应用中。这可以减少所需编写的代码量,并使编写的代码更少出错,更易于测试和维护。 MVC 和 Entity Framework Cor...

沐雪架构师 94
上一篇: asp.net mvc 3.0详细笔记__16__自定义的 HtmlHelper类方法
下一篇: Linq学习__07__差集Except、并集Union 和 Concat(TSource)
人人有责5yozo
博客等级 码龄15年 19粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值