架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 530|回复: 0

[ASP.NET] Asp.net core 模型数据验证

[复制链接]
发表于 2019-11-21 10:49:51 | 显示全部楼层
用法同Asp.net MVC类似。实质上在UI层加了一层js验证,在控制器加了一层后台验证。
UI层js验证是引用两个js脚本起作用

如果不引用这个脚本,前端html页面验证不起作用。
验证的提示信息通过Tag helper 的 asp-validation-for,如:<span asp-validation-for="Rating" class="text-danger"></span>
验证失败时,提示信息自动加入到span标签文本中。

具体示例

1创建一个要验证的类型

Required 特性表示属性不能为空,但不能校验空格
值类型(如decimal, int, float, DateTime) 本身是必须的,并不需要 [Required] 特性。
Range 特性限制值在指定的范围内。
StringLength 特性可让你设定字符串最大长度,以及最小长度(可选)。
RegularExpression特性校验正则表达式。

[Compare("Password", ErrorMessage = "两次输入的密码不一致")]
[Display(Name = "确认密码")]
[DataType(DataType.Password)]

常见内置验证属性:
[CreditCard]:验证属性是否为信用卡格式
[Compare]:验证模型中的两个属性是否匹配
[EmailAddress]:验证属性是否为电子邮件格式
[Phone]:验证属性是否为电话号码格式
[Range]:验证属性值是否在给定范围内
[RegularExpression]:验证数据是否与指定的正则表达式匹配
[Required]:必填的属性
[StringLength]:验证字符串属性的最大长度
[Url]:验证属性是否为网址格式

注意:禁止在 DateTime 上使用 Range 特性来进行 JQuery 日期验证。因为不管填入的时间值在不在Range范围内,js验证都会提示错误。

2 在控制器进行验证

3 UI页面

微信截图_20191121104900.png

如图所示:放映日期提示错误,正是由于
DateTime 类型上使用 Range 导致的,所以禁止在DateTime 上使用 Range 。

5 自定义数据验证失败时的提示信息

校验特性上使用ErrorMessage属性

[StringLength(30,ErrorMessage = "Genre的长度不能超过30")]





上一篇:谭浩强《C++程序设计》
下一篇:Jquery 获取表单FORM所有元素进行AJAX提交
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2020-7-10 16:58

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表