我有一個類結構,看起來像這樣此驗證dillemma:如何hanlde在DataAnnotations
class Person
{
public virtual string FirstName {get;set;}
public virtual string LastName {get;set;}
public virtual Address HomeAddress {get;set;}
}
class Address
{
public virtual string Street {get;set;}
public virtual string City {get;set;}
public virtual string State {get;set;}
public virtual string ZipCode {get;set;}
public virtual string Country {get;set;}
}
然後我有需要的地址和使用該RequiredAddress一個人一個人的想法......所以我有我新「必選」的地址看起來像:
class RequiredAddress
: Address
{
[Required]
public override string Street {...}
[Required]
public override string City {...}
[Required]
public override string State {...}
[Required]
public override string ZipCode {...}
[Required]
public override string Country {...}
}
但是當我剛newed了RequiredAddress的一個實例到我RequiredPerson地址的地址字段,MVC似乎無法檢測[必填]標籤,我最終不得不這樣做:
class PersonRequiredAddress
: Person
{
public new RequiredAddress Address {get;set;}
}
現在,因爲我們必須這樣做,我們不得不重新做我們的DAL來處理對象的差異...這對我來說感覺像一個悲慘的代碼味道。任何人都可以爲我們面對的這個窘境提供更好的解決方案嗎?
我可以,但在這種情況下,「Person」被用作具體類,以及「PersonRequiredAddress」......讓我看看它是如何工作的。 – 2012-02-03 16:56:58
是的..是的,我認爲這將起作用。呃..應該已經意識到這一點。 thx @ cadrell0 – 2012-02-03 17:05:33
我離開這個作爲答案,但我碰到的問題是在對象的映射。我似乎無法返回通用的IList>,因爲PersonRequiredAddress似乎不想適合IList –
2012-02-03 18:21:14