首页 > 其他 > 详细

8.1 自定义验证属性

时间:2016-10-29 18:50:50      阅读:253      评论:0      收藏:0      [点我收藏+]

      前面讲的都是预先设定的数据注解,但是系统自由的数据注解肯定不适合所有的场合,所以有时候我们需要自定义数据注解。自定义数据注解有两种,一种是直接写在模型对象中,这样做的好处是验证时只需要关心一种模型对象的验证逻辑,缺点也是显而易见的,那就是不能重用。还有一种是封装在自定义的数据注解中,创建自己的Data Annotations Validation Attribute,优点是可重用,缺点是需要应对不同类型的模型。

      现在我们以封装在自定义数据注解中的方法为例看下如何在asp.net mvc3中自定义数据注解以及使用。首先,所有的数据注解都应继承于System.ComponentModel.DataAnnotations命名空间中的ValidationAttribute类。重写其protected virtual ValidationResult IsValid(object value, ValidationContext validationContext);
public class ValidEmailAddressAttribute : ValidationAttribute 
{ 
    public ValidEmailAddressAttribute() 
    { 
        // Default message unless declared on the attribute 
        ErrorMessage = "{0} must be a valid email address."; 
    } 

    public override bool IsValid(object value) 
    { 
        // You might want to enhance this logic... 
        string stringValue = value as string; 
        if (stringValue != null) 
            return stringValue.Contains("@"); 
        return true; 
    } 
}

public class Appointment 
{ 
    [Required(ErrorMessage = "Please enter your name")] 
[StringLength(50)] public string ClientName { get; set; } [DataType(DataType.Date)]
[Required(ErrorMessage = "Please choose a date")] public DateTime AppointmentDate { get; set; } [ValidEmailAddress] public String Email { get; set; } }

8.1 自定义验证属性

原文:http://www.cnblogs.com/yytesting/p/6011423.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!