您的位置:首页 > 编程语言 > ASP

asp.net mvc 3.0详细笔记__17__使用 DataAnnotations 进行模型验证

2014-01-05 19:54 796 查看
欢迎一起来学习MVC 3.0,我们在一步一个脚印的做一个MVC 3.0的项目,期间会有很多值得探索的地方。将会学到Razor,Lampda,Entity Framework,Linq C#新特性等等知识,一起加油吧!

说起验证,大家都很熟悉了,各种验证手段也层出不穷,那么微软的asp.net mvc 3.0为我们提供了什么样的验证理念呢?今天我们就来深入剖析以下.

(1)首先分析验证的目的:防止用户通过输入对程序造成安全方面的隐患。说白了,就是防止用户将某些不符合规则,甚至对程序造成某种破坏的数据提交到数据库。

微软认为:既然验证的东西是针对数据库的数据,而asp.net mvc 3.0又将mvc中的M(Model)与数据库紧密联系起来,因此微软决定在M(模型)这块下手,之前我们的模型层的类中隐隐约约看见过一些解释性样式的文字,具体案例参考StoreManager控制器下的Edit方法和StoreManager文件夹下的Edit.cshtml视图文件,部分Edit方法如代码1.1

代码1.1

/// <summary>
/// 唱片价格
/// </summary>
[Required(ErrorMessage = "唱片必须有价格!")]
[Range(0.01, 100.00, ErrorMessage = "范围必须从 0.01 到 100.00")]
public Nullable<decimal> Price { get; set; }
其中Required和Range就是用于验证而提供的关键字,同属于DataAnnotations

(2)常用的DataAnnotations如下所示:

Required 必须 – 表示这个属性是必须提供内容的字段

DisplayName 显示名 – 定义表单字段的提示名称

StringLength 字符串最大长度 – 定义字符串类型的属性的最大长度

Range 范围 – 为数字类型的属性提供最大值和最小值

Bind 绑定 – 列出在将请求参数绑定到模型的时候,包含和不包含的字段

ScaffoldColumn 支架列 - 在编辑表单的时候,需要隐藏起来的的字符

(3)虽然在模型层对一些字段进行了验证信息的声明,但最终还是需要在视图一侧调用这份声明才会真正的去验证,有时候验证没效果大概就是声明了而没有去调用的缘故。因此在视图页面里首先要做的是:在表单范围内要用@Html.ValidationSummary(true)调用验证;这还不算完,因为在页面上,一般要把错误提示显示在当前字段的后面,因此你还要在显示信息的位置调用验证,

如对以上价格的验证

@Html.EditorFor(model => model.Price)

@Html.ValidationMessageFor(model => model.Price)

(4)执行程序,在编辑的页面的价格输入框中输入"5555555",点击"Save"如图4.1所示,验证成功。

图4.1

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: