在 MVC 中使用属性或设置类 ASP.NET

本文关键字:设置 ASP NET 属性 MVC | 更新日期: 2023-09-27 18:30:26

我有一个包含地址字段的客户类。根据我的研究,我可以使用属性:

public class Customer{
   //...
   [Required]
   public Address CustomerAddress { get; set; }
} 

或其他方式:

public class AddressSettings{
   public bool AddressRequired { get; set; }
   //...other settings
}

这两种方法都是有效的方法吗?如果不是,为什么另一种方式更好?

在 MVC 中使用属性或设置类 ASP.NET

在我看来,使用属性更好、更专业,使用属性更具可读性、更灵活、更易于管理,并且它们具有许多开箱即用的功能

对于基本的验证,最好使用DataAnnotations。

另一个选择是FluentValidation(我强烈推荐)

您可以使用单独的类进行验证,但仍与视图模型属性具有强类型关联

[Validator(typeof(PersonValidator))]
public class Person {
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public int Age { get; set; }
}
public class PersonValidator : AbstractValidator<Person> {
    public PersonValidator() {
        RuleFor(x => x.Id).NotNull();
        RuleFor(x => x.Name).Length(0, 10);
        RuleFor(x => x.Email).EmailAddress();
        RuleFor(x => x.Age).InclusiveBetween(18, 60);
    }
}

使用此方法,您可以拥有更复杂、更丰富的验证逻辑。