欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【详解ASP.NET MVC 2自定义验证】,下面是详细的分享!
详解ASP.NET MVC 2自定义验证
ASP.NET MVC 2内置支持在服务器上验证数据注释验证属性,本文介绍如何使用System.ComponentModel.DataAnnotations中的基础类构建自定义验证属性,关于ASP.NET MVC 2中数据注释是如何工作的,请参考Brad的博客(http://bradwilson.typepad.com/blog/2009/04/dataannotations-and-aspnet-mvc.html)。
我会介绍如何连接到ASP.NET MVC 2的客户端验证扩展,以便你可以在客户端上运行JavaScript验证逻辑。
我将创建一个PriceAttribute来验证某个值是否大于指定的价格,并且这个价格必须以99分结束,因此$20.00是无效的值,$19.99是有效的。下面是这个属性的代码:
|
以下为引用的内容:
|
注意如果值为空,返回的值是true,这个属性不会验证字段是否需要。我会在RequiredAttribute中验证值是否需要。它允许我将属性放在可选的值上,当用户将这个字段留为空时显示一个错误。
我们可以创建一个视图模型,然后应用这个属性到模型上进行快速测试,下面是这个模型的代码:
|
以下为引用的内容:
|
我们再快速地创建一个视图(Index.aspx)显示和编辑窗体:
|
以下为引用的内容:
|
现在我们只需要一个有两个行为的控制器,一个编辑视图,另一个接收提交的ProductViewModel。
|
以下为引用的内容:
|
我们还没有开启客户端验证,下面来看看当我们查看这个页面并提交一些值时会发生什么。

以上所分享的是关于详解ASP.NET MVC 2自定义验证,下面是编辑为你推荐的有价值的用户互动:
相关问题:asp.net mvc的Model验证问题
答:这种情况不要用特性验证了,使用IValidatableObject接口吧。 模型实现IValidatableObject接口,然后在里面实现就行了。比如我想来个日期比较 public IEnumerable Validate(ValidationContext validationContext) { if (this._AnnouncementDateEn... >>详细
相关问题:请教.NET MVC 2的一些简单问题
答:1) 现在最新的版本是MVC 5.0 建议使用3.0以上版本 2) 楼上介绍的那本书很有用,建议观看,讲的很透 3) "[Require]'"[ValidatePasswordLength]"'[DisplayName("当前密码")]""[DataType(DataType.Password)]" 都是Attribute (C# 的Attribute你应该明... >>详细
相关问题:asp.net mvc2 中 Linq问题
答:匿名类因为你无法知道这个类的“类名”,因此在MVC的视图页中你无法通过Model指定某一个特定的类进行绑定。也无从转换考虑,仅仅是一次性数据显示而已。而select lctgs是直接从生成的LINQ中获取的类,有“真名实姓”,因此可以的。 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
