MVC校验特性
1、前端引入3个脚本
①jq脚本 ②jQuery.Validate.js ③jquery.validate.unobtrusive.js(异步验证)
2、后端加特性
在表对应的Model层里面,为属性加特性,常用的特性:
[Required]表示该属性是必须要填的,不能为null。
[StringLength]可以限制属性的长度大小。
[Range]、[RegularExpression]
3、后端使用方法
使用ErrorMessage自定义错误提示信息,要引入命名空间using System.ComponentModel.DataAnnotations。
[Required(ErrorMessage = "角色名称不能为空")]
[StringLength(, MinimumLength = , ErrorMessage = "角色名称{2}~{1}个字符")]
4、前端使用方法
前端为了能够显示错误信息,使用Html.ValidationMessageFor(m => m.Name) 来显示,表示为Name属性显示错误信息。
增加完特性,前端代码input标签里面会出现data-val="true" data-val-required="名字不能为空",这2个属性。
通过查看页面源代码比较得知,只要在前端为input标签加入下面属性以及span标签(目的是显示错误信息),不需要在后端加[Required]特性也可以实现同样的效果。
此时注意input要加name属性,span标签中的data-valmsg-for要用到。
<input type="text" name="name2" data-val="true" data-val-required="名字不能为空" /><span class="field-validation-valid" data-valmsg-for="name2" data-valmsg-replace="true"></span>
5、顺便说下@Html.DisplayNameFor(..)
在后端为属性加[Display(Name = "测试")]这个特性,前端就可以使用Html.DisplayNameFor显示label标签。
注意:前端的代码要放在表单里面,只有在点击提交的时候才会检测,当不符合要求时,表单不会提交,这是会出现错误信息。
MVC校验特性的更多相关文章
- MVC常用特性
MVC常用特性使用 简介 在以前的文章中,我和大家讨论如何用SingalR和数据库通知来完成一个消息监控应用. 在上一篇文章中,我介绍了如何在MVC中对MongoDB进行CRUD操作. 今天,我将 ...
- ASP.NET MVC最新特性
问题: 既然我说对ASP.NET MVC很熟很懂,对新技术很感兴趣,那么问题是: 当前最新版MVC是什么?你用的哪个版本?相比前一个版本有什么新的特性? 解析: 在面试的时候,为了争取面试官的好感,显 ...
- MVC 校验
校验保障了MVC 应用程序安全性. Models 文件夹包含表示应用程序模型的类 1,创建一个项目MvcValidateDemo. 2,创建一个实体类UserInfo在Models中,包含Id.Use ...
- mvc Routing特性优化
在mvc中,Url地址是利用routing特性来支持,但是这个Routing有个问题,多个不同的地址和指向同一个action方法, 例如: http://test.com (默认) http://te ...
- 关于MVC的特性(AuthorizeAttribute)的一些理解
许多 Web 应用程序要求在用户登录之后才授予其对受限制内容的访问权限. 在某些应用程序中,即使是登录的用户,也会限制他们可以查看的内容或可以编辑的字段. 要限制对 ASP.NET MVC 视图的访问 ...
- .NET [MVC] 利用特性捕捉异常
声明:本代码只适用于.NET MVC. 先创建一个类继承ActionFilterAttribute这个抽象类以及实现IExceptionFilter接口,并实现它的方法OnException. 代码如 ...
- .NET Core[MVC] 利用特性捕捉异常
声明:本方式适用于MVC.本代码只适用于.NET Core MVC. 先创建一个类继承ExceptionFilterAttribute这个抽象类,并override它的方法OnException. 代 ...
- MVC校验方式【六】
一.以往的校验都是自己写正则表达式校验,本篇讲的是通过MVC自带的jquery文件进行校验 实现步骤:1. 在webform页面中引入两个jquery文件,10,11行的代码. <%@ Page ...
- MVC笔记--特性路由
物性路由:将路由和控制器放在一起,这样更简单方便,还可以处理复杂的路由场景 传统路由:集中.强制.基于代码风格来定义的. 每个MVC应用程序都需要路由来定义自己的处理请求方式,路由是MVC是应用程序的 ...
随机推荐
- Hibernate 缓存机制(转)
一.why(为什么要用Hibernate缓存?) Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数 ...
- image控件读取数据库二进制图片
DataGridShowImage.aspx <%@ Page language="c#" debug="true" Codebehind=" ...
- 使用Statement执行sql语句
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java ...
- FileWriter
package file; import java.io.File; import java.io.FileWriter; import java.io.IOException; public cla ...
- ubuntu14.04 reaver不能正常使用
原帖地址: ubuntu14.04 reaver不能正常使用 http://forum.anywlan.com/thread-282404-1-1.html (出处: http://www.anywl ...
- C# 文件创建时间,修改时间
System.IO.FileInfo fi = new System.IO.FileInfo(@"D:\site\EKECMS\skin\Grey\default#.html"); ...
- Android ContentProvider完整案例
ContentData类,提供数据常量: /** * 提供ContentProvider对外的各种常量,当外部数据需要访问的时候,就可以参考这些常量操作数据. * @author HB * */ pu ...
- ruby文档
http://www.ruby-doc.org/http://rubyonrails.org/https://www.ruby-lang.org/zh_cn/downloads/http://ruby ...
- 2015第29周二AOP
1.问题:想要添加日志记录.性能监控.安全监测 2.最初解决方案 2.1.最初解决方案:在每个需要的类函数中重复写上面处理代. 缺点:太多重复代码,且紧耦合 2.2.抽象类进行共性设计,子类进行个性设 ...
- openStack 手动部署文档
1, 规划配置网络