验证

attributes:

Attributes Input Type
[EmailAddress] type=”email”
[Url] type=”url”
[HiddenInput] type=”hidden”
[Phone] type=”tel”
[DataType(DataType.Password)] type=”password”
[DataType(DataType.Date)] type=”date”
[DataType(DataType.Time)] type=”time”

许多有用的验证属性都必须引用命名空间: System.ComponentModel.DataAnnotations

IsValid

  • [Compare]
    验证两个字段是否在model中匹配
  • [EmailAddress]
    验证该字段是否为邮箱格式
  • [Phone]
    验证该字段是否为手机号码格式
  • [Range()]
    验证该字段的值是都在这个范围之内
  • [RegularExpression]
    验证该字段数据是否与指定的正则表达式相匹配
  • [Required]
    该字段为必填
  • [StringLength(60,MinimumLength=3)]
     验证该字段的字符串最大长度为多少,MinimumLength设置最小长度
  • [Url]
    验证该字段是否为url格式
  • [ApplyFormatInEditMode]
    设置指定当值显示在文本框中进行编辑时,也应应用格式化?

The Validation Message Tag Helper

<span asp-validation-for="Email"></span>
HTML5:
<span class="field-validation-error" data-valmsg-for="Email"
data-valmsg-replace="true">
The Email Address field is required.
</span>

通过这个标签,当用户填写的Email的验证没有通过之后,显示默认错误提示。

The Validation Summary Tag Helper

  • 使用asp-validation-summary属性的<div>标签

  • HTML替代: @Html.ValidationSummary

asp-validation-summary Validation messages displayed
(ValidationSummary).All Property and model level
(ValidationSummary).ModelOnly Model
(ValidationSummary).None None
<div asp-validation-summary="ModelOnly"></div>

非model类里边的验证错误消息提示

ModelState.AddModelError("TelephoneNumber", "请提供有效的手机号码");

表单验证错误输入框变颜色

.input-validation-error{
border: 1px solid #FF5252;
}

验证错误后输入正确的信息,错误消息不会消失问题

引入jquery验证js就可以解决:

<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>

@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}

全局错误显示

@Html.ValidationSummary(true)

ModelState.AddModelError(string.Empty, error.Description);

.Net Core表单验证的更多相关文章

  1. Django实现表单验证、CSRF、cookie和session、缓存、数据库多表操作(双下划綫)

    通常验证用户输入是否合法的话,是前端js和后端共同验证的,这是因为前端js是可以被禁用的,假如被禁用了,那就没法用js实现验证合法与否了,也就是即使用户输入的不合法,但是也没提示,用户也不知道怎么输入 ...

  2. django之form表单验证

    django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf- -*- import re from django ...

  3. python_way day19 HTML-day5 (form表单验证,CSRF,cookie,session,缓存)

    python-way day19 1. dJango的form表单验证 2.CSRF 跨站请求伪造 3.cookie,session 4.缓存 一,django表单验证功能 1.django验证基础: ...

  4. JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)

    这里不进行很复杂的后台验证以及JavaScript的正则表达式,只是简单的介绍下这个技术,简单的后台接收与跳转,大概了解怎么验证的就可以.具体的技术,我后面还会继续写博客的.本人也还在学习中. 表单验 ...

  5. Day19 Django之Form表单验证、CSRF、Cookie、Session和Model操作

    一.Form表单验证 用于做用户提交数据的验证1.自定义规则 a.自定义规则(类,字段名==html中的name值)b.数据提交-规则进行匹配代码如下: """day19 ...

  6. python运维开发(十九)----Django后台表单验证、session、cookie、model操作

    内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ...

  7. SpringMVC 表单验证

    SpringMVC 表单验证 本章节内容很丰富,主要有基本的表单操作,数据的格式化,数据的校验,以及提示信息的国际化等实用技能. 首先看效果图 项目结构图 接下来用代码重点学习SpringMVC的表单 ...

  8. 第二十二章 Django会话与表单验证

    第二十二章 Django会话与表单验证 第一课 模板回顾 1.基本操作 def func(req): return render(req,'index.html',{'val':[1,2,3...]} ...

  9. Django学习笔记之表单验证

    表单概述 HTML中的表单 单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Django还是PHP语言还是其他语言.只要把input标签放在form标签中,然后再添加一个 ...

随机推荐

  1. Spring和redis简单测试demo

    1.1 首先创建一个Maven工程 File --> New --> Other,然后选择Maven目录下的Maven Project,如下图: 然后在弹出的面板中选择配置后,下一步即可, ...

  2. flex宽度总结

    flex宽度相关的属性有三个 flex-grow,flex-shrink,flex-basis.下面分别介绍其相关特点: flex-grow 扩大因子,主轴有剩余空间时,元素分配到剩余空间的比率 fl ...

  3. bzoj 1061~1065【Noi2008】解题报告

    这次Noi好像格外喜欢树形DpQAQ P.S.好像这次的题都与图有关QAQ bzoj1061[Noi2008]志愿者招募:上下界可行最小费用流 bzoj1062[Noi2008]糖果雨:数形结合&am ...

  4. 【bzoj5110】Yazid的新生舞会

    这里是 $THUWC$ 选拔时间 模拟赛的时候犯 $SB$ 了,写了所有的部分分,然后直接跑过了 $4$ 个大样例(一个大样例是一个特殊情况)…… 我还以为我非常叼,部分分都写对了,于是就不管了…… ...

  5. C#创建Graphics对象的方法

    方法一.利用控件或窗体的Paint事件中的PainEventArgs 在窗体或控件的Paint事件中接收对图形对象的引用,作为PaintEventArgs(PaintEventArgs指定绘制控件所用 ...

  6. 【CF712D】Memory and Scores(概率,DP,前缀和)

    题意:AB两人玩一个游戏,两人玩t轮 每人每次随机且等概率从[-k,k]中取一个数字加到总得分中 得分高者赢 已知A B初始分别有a b分,问A取得胜利的概率是多少 (1 ≤ a, b ≤ 100,  ...

  7. css3 boxing-sizing属性

    boxing-sizing: 1.content-box 计算宽度不包含padding和border宽度 2.border-box border和padding计算入width之内 3.padding ...

  8. Django ConnectionAbortedError WinError 10053 错误

    因为ajax默认是异步提交,可是有时候我们会发现,本来要求请求马上出现,可是异步会导致后面突然再执行,这样就出问题了. (1)添加这样一段代码 $.ajaxSetup({ async : false ...

  9. Linux 之 FTP服务器搭建

    FTP服务器搭建 参考教程:[千峰教育] 1.关闭防火墙: service iptables stop 2.关闭Selinux setenforce 0 3.安装所需要依赖及编译工具 yum inst ...

  10. 神秘的FrontCache

    用jmap -histo的时候,发现堆内存中有很多奇怪的对象,其class name为 java.util.HashMap$FrontCache 跳转到HashMap的源码中,直接搜索FrontCac ...