在构建应用程序,我们创建了一个通用对象模型来存储一些值,该视图模型看起来有点像这样的时刻:
public class FooViewModel {
public int ID { get; set; }
public byte FooType { get; set; }
[Required]
[Display(Name = "Bar Name")]
public string Name { get; set; }
[Required]
public string Email { get; set; }
//etc, etc
}
问题是:这取决于FooType,我们希望有显示名称是不同的,电子邮件不需要1型和2,但需要3型和4。
我们试图从分隔条件每种类型的不同在于,以从这个继承类的属性,但是验证确实对什么是基本类型指定一个备用的 ,所以没有工作。
目前,唯一的选择似乎是为每个FooType(以及单独的控制器和视图),从而导致大量的重复代码的视图模型。
有什么其他的方法来保持这种干?