MVC3相同的ViewModel仅用于两种具有Required属性的情况

时间:2011-12-20 12:48:20

标签: asp.net-mvc-3 validation

我有一个ViewModel。像这样的东西

public class ViewModel
{
   public int Id { get; set; }
   public int? Value { get; set; }
}

我有一个现有ViewModel表,下面我有一个表单,您可以在其中添加新的ViewModel

对于从DB获取的现有ViewModel,我不希望对Value属性进行验证,但是对于添加新ViewModel的情况,我需要验证....实际模型比这个更复杂所以我想要在两种情况下使用相同的模型..是否可能?

编辑:此作品

public class AddNewViewModel : ViewModel
{
    public new int Value { get; set; }
}

使用newvirtual/override以及为什么更好?

1 个答案:

答案 0 :(得分:0)

必需的属性被编译到类中。你可以这样做:

public class BaseViewModel
{
   public int Id { get; set; }
   public virtual int? Value { get; set; }
}

public class CreateViewModel : BaseViewModel
{
   [Required]
   public override int? Value { get; set; }
}

这样,您只需将validation属性添加到您需要它们的属性中。