MVC Model验证
类别:编程学习 浏览量:950
时间:2015-9-27 MVC Model验证
MVC Model验证ASP.NET MVC中的Model是自验证的,这是通过.NET4的System.ComponentModel.DataAnnotations命名空间完成的。 我们要做的只是给Model类的各属性加上对应的验证标记(Attributes)就可以让MVC框架帮我们完成验证。
一、MVC中自带Model验证标记
1、非空验证
[DisplayName("姓名")]
[Required(ErrorMessage = "姓名不能为空")]
public string Name { get; set; }
效果图
2、字段长度验证
[DisplayName("密码")]
[StringLength(6, ErrorMessage = "密码不能超过6个字符")]
public string Password { get; set; }
要求至少n位
[StringLength(160, MinimumLength=3)]
public string FirstName { get; set; }
3、正则表达式验证
[DisplayName("电子邮件")]
[RegularExpression(@"^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$",
ErrorMessage = "请输入正确的Email格式\\n示例:abc@123.com")]
public string Email { get; set; }
效果图
4、范围验证
[DisplayName("年龄")]
[Range(1, int.MaxValue, ErrorMessage = "请输入大于等于1的数")]
public int Age { get; set; }
小数的情况
[Range(typeof(decimal), “0.00”, “49.99”)]
public decimal Price { get; set; }
5、远程服务端验证
Remote异步请求验证,返回类型为Json类型的JavaScript对象。
Model代码
[DisplayName("姓名")]
[Required(ErrorMessage = "姓名不能为空")]
[Remote("GetUser", "User", ErrorMessage = "该姓名已存在")]
public string Name { get; set; }
Controller代码
public ActionResult GetUser(string name)
{
return Json(name != "aa", JsonRequestBehavior.AllowGet);
}
效果图
6、 比较验证
[RegularExpression(@”[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}”)]
public string Email { get; set; }
[Compare(“Email”)]
public string EmailConfirm { get; set; }
二、自定义Attbitue验证
1、新建一个FutureTimeAttribute类
namespace MvcStudy.Validation
{
public class FutureTimeAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
DateTime dt = (DateTime)value;
if (dt != null)
{
if (dt < DateTime.Now)
{
return true;
}
}
return false;
}
}
}
2、使用
3、效果图
填写一个将来的时间点击注册之后我们将会看到如下的结果
标签:MVC
您可能感兴趣
- php框架制作方法(PHP从零开始打造自己的MVC框架之路由类实现方法分析)
- MVC中JS获取后台的数据
- mvc编译时,让View中的错误提示
- mysql mvcc 底层原理(浅析MySQL - MVCC)
- MVC JsonResult的用法
- iiS7中如何部署MVC3程序
- MVC中JSON字符长度超出限制
- MVC中使用DropDownList
- MVC过滤器的用法
- mvc中partialview
- mysql乐观锁与mvcc(MySQL中的乐观锁,悲观锁和MVCC全面解析)
- mvc中Scripts.Render、Styles.Render
- mysql mvcc 流程(Mysql MVCC机制原理详解)
- mvc在视图中使用@helper封装输出代码
- mvc中validateinput属性失效
- MVC 使用FileResult导出文件
- 仙女们的私藏鲜法大PK 鲜香切块牛肉(仙女们的私藏鲜法大PK)
- 天热没胃口 这道菜开胃又下饭,2个小技巧新手一学就会(这道菜开胃又下饭)
- 指天椒紫苏爆炒牛肉(指天椒紫苏爆炒牛肉)
- 谷雨前,吃牛羊肉别忘了吃河鲜,除湿还清热,加紫苏一炒特解馋(吃牛羊肉别忘了吃河鲜)
- 紫苏牛肉锅里滚一滚,香的鼻子都要掉了(紫苏牛肉锅里滚一滚)
- 每天都吃水果的好处(每天吃水果的好处与功效)
热门推荐
- thinkphp前后端配合(thinkPHP+LayUI 流加载实现功能)
- python弹球游戏编写过程(python实现坦克大战游戏 附详细注释)
- 怎么把网站放进云服务器(云服务器可以放几个网站?)
- php面向对象怎么用(PHP面向对象程序设计之对象克隆clone和魔术方法__clone用法分析)
- css3动画让元素绕着圆圈转动(css3动画过渡实现鼠标跟随导航效果)
- php 获取get url(PHP实现获取url地址中顶级域名的方法示例)
- php全栈之路教程(PHP进阶学习之依赖注入与Ioc容器详解)
- 织梦dedecms优化安全设置指南(DeDecms SEO优化经验谈适用于任何网站)
- dedecms主表内容(DEDECMS最为常用的分页标签及分页样式代码)
- dedecms默认模板目录(DEDECMS 5.7 将data目录迁移后,网站地图无法打开和更新的解决方法)