这看起来很简单,但我有一种感觉,框架不会让我做我想做的事。
假设我有 3 页 - 一个要求输入名字/姓氏,一个要求输入电话号码,一个允许您编辑两者:
public class NameModel
{
public string FName {get;set;}
public string LName {get;set;}
}
public class PhoneModel
{
public string Phone { get; set;}
}
public string NamePhoneModel
{
public string FName {get;set;}
public string LName {get;set;}
public string Phone {get;set;}
}
我目前验证这些模型的方式是我有两个接口INameModel
,IPhoneModel
并且具有所有验证属性。我使用[MetadataType(typeof(INameModel))]
onNameModel
和[MetadataType(typeof(IPhoneModel))]
on PhoneModel
。
我真正想做的是同时使用这两个接口,NamePhoneModel
这样我就不必重新输入所有验证属性。请记住,这是一个简单的解决方案,现实世界的项目比这复杂得多 - 在上面的示例中,它很容易继承,但想想可能有其他属性NameModel
不会存在于NamePhoneModel
,或者更复杂的是,可能有一个电子邮件属性存在于NameModel
另一个页面中,比如EmailModel
简单地复制所有这些规则感觉不是正确的方法 - 必须有更好/正确的方法?