(3)验证用户的输入
2013-10-24 13:56
141 查看
场景 你要确保你的表单捕获的数据包含你预期的数据,这些数据是基于你的数据库或模型设计。
解决方案
.NET 4.0 包含了一个新的数据注解命名空间,提供了一些有用的元数据属性类。这些类已经被应用到MVC3。
对于验证表单输入,下面的属性类可以用来提供各种各样 验证选项:RequiredAttribute,RegularExpressionAttribute,RangeAttribute和 DataTypeAttribute。当需要自定义的验证的时候,MVC的3还支持改进ValidationAttribute类,允许开发人员定义的验证。
讨论
接下来的例子是要去扩展“code-first book“model,这个model是在前一“秘方”中创建的。
这个model将按照以下条件被更新:
1. 书名是必须的
2. ISBN是合法的
3. 书的摘要是必须的
4. 作者是必须的
5. 合法的价格(美元)
6. 合法的出版日期
以上6个验证中的5个可以由MVC 3 的内置方法完成。然而,第5个验证需要用一种不同的格式化-它需要一个自定义验证方法。
双击代码全选
在上边的例子,[Required]数据注解被附加在每个字段上,表明这个字段是必须由用户提供。在ISBN number上 [IsbnValidation]特性也被添加了,这是通知MVC 3 IsbnValidation 必须调用IsValid操作,这个操作即将被创建.为了验证价格,[Range] 注解被应用。对于价格的验证,我们也可以用正则表达式特性 [RegularExpression] 来完成。
如下:
[RegularExpression (@"(b[d.]*)")]
public double Price { get; set; }
最后,对于published date(出版日期)的验证,DataType特性告诉MVC这个字段的类型是一个日期类型。
一个合法ISBN的定义是:10-13个字符。为何合理的组织代码,自定义验证类将被放在一个单独的文件夹里。
右键点击项目:添加->新建文件夹。我们为这个文件夹命名为:Validations.在该文件夹点击右键。添加类:IsbnValidationAttribute.cs
代码如下:
双击代码全选
创建完这个类记得在 book.cs添加命名空间引用:using MvcApplication.Validations;
上边的例子包含了一个标准的ISBN验证。这个验证是来自CSharp Open Source example。如果ISBN符合2个正则表达式中的一个。验证函数将返回true。否则返回false。需要用户重新输入
如果你在你的浏览器里转到图书创建页面。当你点击提交按钮。验证就被会触发。
解决方案
.NET 4.0 包含了一个新的数据注解命名空间,提供了一些有用的元数据属性类。这些类已经被应用到MVC3。
对于验证表单输入,下面的属性类可以用来提供各种各样 验证选项:RequiredAttribute,RegularExpressionAttribute,RangeAttribute和 DataTypeAttribute。当需要自定义的验证的时候,MVC的3还支持改进ValidationAttribute类,允许开发人员定义的验证。
讨论
接下来的例子是要去扩展“code-first book“model,这个model是在前一“秘方”中创建的。
这个model将按照以下条件被更新:
1. 书名是必须的
2. ISBN是合法的
3. 书的摘要是必须的
4. 作者是必须的
5. 合法的价格(美元)
6. 合法的出版日期
以上6个验证中的5个可以由MVC 3 的内置方法完成。然而,第5个验证需要用一种不同的格式化-它需要一个自定义验证方法。
如下:
[RegularExpression (@"(b[d.]*)")]
public double Price { get; set; }
最后,对于published date(出版日期)的验证,DataType特性告诉MVC这个字段的类型是一个日期类型。
一个合法ISBN的定义是:10-13个字符。为何合理的组织代码,自定义验证类将被放在一个单独的文件夹里。
右键点击项目:添加->新建文件夹。我们为这个文件夹命名为:Validations.在该文件夹点击右键。添加类:IsbnValidationAttribute.cs
代码如下:
上边的例子包含了一个标准的ISBN验证。这个验证是来自CSharp Open Source example。如果ISBN符合2个正则表达式中的一个。验证函数将返回true。否则返回false。需要用户重新输入
如果你在你的浏览器里转到图书创建页面。当你点击提交按钮。验证就被会触发。
相关文章推荐
- 如果做到安全的系统之验证用户输入.
- Python 利用StringVar接收用户输入, 制作用户名和密码的验证登录窗口
- 获取shadow密码并验证用户输入密码 xK)ib!BdmJYr
- ASP.NET学习手记:验证用户表单输入
- RHCE_LAB(2)SSH远程登录自动验证(不输入用户登录密码)的实现
- WPF通过异常来验证用户输入
- 用java编写一个程序,来验证用户输入的数是不是2的阶次方
- PHP中进行日期用户输入生日有效性验证
- WPF入门(五):简单绑定 - 用户输入合法性验证
- Javascript验证用户输入URL地址是否为空及格式是否正确
- MVC+JQuery validate实现用户输入验证
- php中filter函数验证、过滤用户输入的数据
- springMVC 注解方式 验证用户输入
- JavaScript验证用户输入的是字符或数字及ASCII Chart应用
- nginx 用户访问站点输入用户名密码验证
- Atlas学习手记(26):使用Validators验证用户输入
- 用户输入验证邮箱,通过javascript代码验证邮箱格式是否正确 //邮箱验证
- 使用 验证控件 验证用户的输入字数
- 验证用户输入的口令是否与数据库中的匹配
- 当用户是WINDOWS身份验证时,BCP命令不用输入-U和-P,只需输入-T即可