asp.net MVC - 小鸟系列之属性验证
2016-07-24 18:19
543 查看
.Net 4.0的 System.ComponentModel.DataAnnotations 命名空间中提供了如下所示的验证属性
StringLength: 字符串字段所允许的最大长度
Required: 必填字段
RegularExpression: 字段属性必须符合所指定的正则表达式
Range: 数字字段必须符合的范围
CustomValidation: 自定义字段验证规则
从APS.NET MVC3开始,在ASP.NET MVC组件里也新增了几个好用的验证属性,这些属性不在 System.ComponentModel.DataAnnotations 命名空间之下,而是在 System.Web.Mvc 命名空间下,请注意不要引用错命名空间
Compare: 用来对比数据模型中另一个字段是否与套用的字段一致。此属性可用在需要输入两次密码的窗体上,也就是在会员注册页面时,可能会需要输入两次相同的密码,避免使用者的输入错误
Remote: 将该字段输入值通过Ajax 送到指定的Action 做验证,通过远程验证后回传的结果,当作验证的成功与否。此属性可用在用户输入的会员账号是否已经被使用,通过远程Ajax 调用可提升窗体输入的使用性
.Net 4.5也新增了一个好用的验证属性,这些属性在System.Web.Security 命名空间下。
MembershipPasswordAttribute: 验证密码字段是否符合成员资格提供者当前的密码需求。此属性可用在密码输入字段,通过Membership 提供者所定义的密码复杂度要求进行检查
示例
1. 首先新建一个MVC项目,新建一个Model类 MemberModels.cs
3. View Code
4. 效果
StringLength: 字符串字段所允许的最大长度
Required: 必填字段
RegularExpression: 字段属性必须符合所指定的正则表达式
Range: 数字字段必须符合的范围
CustomValidation: 自定义字段验证规则
从APS.NET MVC3开始,在ASP.NET MVC组件里也新增了几个好用的验证属性,这些属性不在 System.ComponentModel.DataAnnotations 命名空间之下,而是在 System.Web.Mvc 命名空间下,请注意不要引用错命名空间
Compare: 用来对比数据模型中另一个字段是否与套用的字段一致。此属性可用在需要输入两次密码的窗体上,也就是在会员注册页面时,可能会需要输入两次相同的密码,避免使用者的输入错误
Remote: 将该字段输入值通过Ajax 送到指定的Action 做验证,通过远程验证后回传的结果,当作验证的成功与否。此属性可用在用户输入的会员账号是否已经被使用,通过远程Ajax 调用可提升窗体输入的使用性
.Net 4.5也新增了一个好用的验证属性,这些属性在System.Web.Security 命名空间下。
MembershipPasswordAttribute: 验证密码字段是否符合成员资格提供者当前的密码需求。此属性可用在密码输入字段,通过Membership 提供者所定义的密码复杂度要求进行检查
示例
1. 首先新建一个MVC项目,新建一个Model类 MemberModels.cs
namespace MVC4.MemberInfo { public class MemberModels { [Required(ErrorMessage="Name is required")] public string Name { get; set; } [Required(ErrorMessage = "Password is required")] [MinLength(5, ErrorMessage = "Password length must be equal or greater than 5")] public string Password { get; set; } } }2. Controller Code
public ActionResult Index() { return View(); } [HttpPost] public ActionResult Index(MemberModels MemberInfo) { //true if this instance is valid; otherwise, false if (ModelState.IsValid) { return View("/Views/Home/ShowMember.cshtml"); } return View("/Views/Home/Index.cshtml"); }
3. View Code
@model MVC4.MemberInfo.MemberModels @{ ViewBag.Title = "Home Page"; Layout = null; } <form action="/Home/Index" method="post"> Name:<input id="txtName" type="text" name="Name" /> @Html.ValidationMessageFor(model => model.Name) <br /><br /> Password:<input id="txtPassword" type="text" name="Password" /> @Html.ValidationMessageFor(model => model.Password) <br /><br /> <input id="btnSumbit" type="submit" value="提交"/> </form>
4. 效果
相关文章推荐
- HDU 3746 Cyclic Nacklace (kmp求循环节)
- manually Invoking Model Binding / Model Binding /Pro asp.net mvc 5
- 使用AspectJ在Android中实现Aop
- sqlserver+asp.net+devextreme从零开始(3)
- sqlserver+asp.net+devextreme从零开始(2)
- asp.net显示用户信息
- ASP.NET 导入 Excel
- asp.net core + angular2 的环境配置
- DotNet/Asp.Net/EF Core
- NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorld
- asp.net mvc表单提交
- IIS是如何处理ASP.NET请求的
- 【无私分享:ASP.NET CORE 项目实战(第二章)】添加EF上下文对象,添加接口、实现类以及无处不在的依赖注入(DI)
- 【无私分享:ASP.NET CORE 项目实战】目录索引
- ASP.NET MVC @helper使用说明
- ASP.NET Core 1.0 on Ubuntu 16.04
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(六)-- 依赖注入
- ASP.NET/MVC 配置log4net启用写错误日志功能
- [Asp.Net]登录协同工作平台安全解决方案(优化版)
- asp.net总结