自学内容网 自学内容网

System.ComponentModel.DataAnnotations 使用介绍

RequiredAttribute:确保数据字段的值是必须的,不能为null或空。
KeyAttribute:标识一个属性作为实体的主键。
MaxLengthAttribute 和 MinLengthAttribute:定义字符串属性的最大和最小长度。
StringLengthAttribute:同时定义字符串属性的最大和最小长度。
RegularExpressionAttribute:用于验证属性值是否符合指定的正则表达式。
RangeAttribute:用于验证数值属性是否在指定的范围内。
DataTypeAttribute:用于指定属性的数据类型,如日期、时间、电子邮件等。
CompareAttribute:用于比较两个属性的值是否相等。
CustomValidationAttribute:用于实现自定义验证逻辑。

这些特性(Attribute)都是System.ComponentModel.DataAnnotations命名空间中提供的,它们用于在.NET应用程序中实现数据验证。下面是对这些特性的简单说明和用法示例:

RequiredAttribute

确保数据字段的值是必须的,不能为null或空。

csharp

public class MyModel  
{  
    [Required]  
    public string Name { get; set; }  
}

KeyAttribute

标识一个属性作为实体的主键。通常用于数据库上下文中。

csharp

public class MyModel  
{  
    [Key]  
    public int Id { get; set; }  
    public string Name { get; set; }  
}

MaxLengthAttribute 和 MinLengthAttribute

定义字符串属性的最大和最小长度。

csharp

public class MyModel  
{  
    [MaxLength(100)]  
    [MinLength(5)]  
    public string Description { get; set; }  
}

StringLengthAttribute

同时定义字符串属性的最大和最小长度。

csharp

public class MyModel  
{  
    [StringLength(100, MinimumLength = 5)]  
    public string ShortDescription { get; set; }  
}

RegularExpressionAttribute

用于验证属性值是否符合指定的正则表达式。

csharp

public class MyModel  
{  
    [RegularExpression(@"^\d{3}-\d{2}-\d{4}$")]  
    public string SocialSecurityNumber { get; set; }  
}

RangeAttribute

用于验证数值属性是否在指定的范围内。

csharp

public class MyModel  
{  
    [Range(typeof(int), "1", "100")]  
    public int Age { get; set; }  
}

DataTypeAttribute

用于指定属性的数据类型,如日期、时间、电子邮件等。

csharp

public class MyModel  
{  
    [DataType(DataType.EmailAddress)]  
    public string Email { get; set; }  
}

CompareAttribute

用于比较两个属性的值是否相等。注意:CompareAttribute 实际上不是 System.ComponentModel.DataAnnotations 命名空间的一部分,它可能属于其他库或框架,如 ASP.NET MVC。

假设它存在于某个库中,用法可能类似于:

csharp

public class MyModel  
{  
    public string Password { get; set; }  
  
    [Compare("Password")]  
    public string ConfirmPassword { get; set; }  
}

CustomValidationAttribute

用于实现自定义验证逻辑。这个特性通常与自定义的验证方法结合使用。

csharp

public class MyModel  
{  
    [CustomValidation(typeof(MyModel), "ValidateName")]  
    public string Name { get; set; }  
  
    public static ValidationResult ValidateName(string value, ValidationContext context)  
    {  
        if (value == "InvalidName")  
        {  
            return new ValidationResult("Invalid name provided.");  
        }  
        return ValidationResult.Success;  
    }  
}

请注意,CompareAttribute 并非标准 System.ComponentModel.DataAnnotations 命名空间的一部分,因此在使用时需要确保引用了正确的库或框架。此外,CustomValidationAttribute 需要与自定义的验证方法结合使用,该方法定义了验证逻辑,并返回 ValidationResult 对象来表示验证是否成功。


原文地址:https://blog.csdn.net/gy0124/article/details/137519464

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!