MVC校验有两种方法:
方法一:自己动手写js---------略
方法二:
l在View的页面中,首先指定页面强类型@model 类型
l使用Html.***For(model=>model.Property)生成表单,这些表单元素中就会包含校验规则属性
l引用jquery、jquery校验、jquery隐式校验3个组件
l通过Html.EnableClientValidation(true);控制客户端验证的启用与禁用(mvc3中自动开启)
l使用Html.ValidationMessageFor(…)显示校验信息,也可以使用Html.ValidationSummary()统一显示
l点击提交按钮转到后台Action,使用ModelState.IsValid判断前台验证是否成功,如果返回true表示验证成功
准备工作----导入三个必备的js包
<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
验证方式:
在Model中创建类型,用于在View中作为强类型页面的类型
.NET 框架中System.ComponentModel.DataAnnotations命名空间包括了众多可用的内置验证特性,用于修饰属性,常用的四个如下:
•[Required]--非空验证
•[StringLength]---字符长度验证
•[Range]--范围验证
•[RegularExpression]--正则表达式验证
•属性ErrorMessage:指定错误提示信息
注:提示信息要在实体类中的属性中写
例题:
<head> <meta name="viewport" content="width=device-width" /> <title>Person</title> <script src="~/Scripts/jquery-1.7.1.min.js"></script> <script src="~/Scripts/jquery.validate.js"></script> <script src="~/Scripts/jquery.validate.unobtrusive.js"></script> </head> <body> <div> @using (Html.BeginForm("Index", "Home", FormMethod.Post)) { @:姓名:@Html.TextBoxFor(p=>p.Name) @Html.ValidationMessageFor(p=>p.Name)//一定记住绑定确认信息,要不然不显示,建议在文本框之后写,这样提示信息也会在文本框之后显示 <br /> @:年龄:@Html.TextBoxFor(p=>p.Age) @Html.ValidationMessageFor(p=>p.Age) <br /> <input type="submit" /> } </div> </body>
实体类中也要绑定好属性--一般在属性之上写
public class Person { [Required(ErrorMessage="<span style='color:red'>*姓名不能为空</span>")] [StringLength(6, ErrorMessage = "<span style='color:red'>名字长度不能超过六位</span>")] public string Name { get; set; } [Required(ErrorMessage = "<span style='color:red'>*年龄不能为空</span>")] [Range(18, 160, ErrorMessage = "<span style='color:red'>*年龄需在18-160之间</span>")] public int Age { get; set; } }