2010-06-30 18 views
2

我有一個實體框架4模型的第一層,其中有一個產品基類,然後是從該類派生的不同類。對於每種類型的產品都有一個部分類,然後每個部分類使用數據註釋的夥伴類。MC2中的數據註釋 - 基類驗證問題

[MetadataType(typeof(Product_Validation))] 
public partial class Product : EntityObject 
{ 
    private List<RuleViolation> ruleViolations = new List<RuleViolation>(); 
} 

然後

public class Product_Validation 
{ 


    [DisplayName("Model Name")] 
    public string ModelName { get; set; } 

    [Required(ErrorMessage = "A description is required")] 
    [StringLength(2, ErrorMessage = "must be 2 or more")] 
    public string Description { get; set; } 
} 

我所遇到的問題是基類驗證(產品)沒有在我的ASP.NET MVC2應用程序發生服務器端。我還沒有嘗試過客戶端。

從產品派生的類(如CD)確實有效。我知道Buddy班級的佈線適用於基本產品類別,因爲我使用的顯示名稱正在使用中。當我爲模型進行綁定時,我使用派生類(CD)。

任何想法?

我看着這SO Post,但它似乎沒有讓我去。

謝謝!

回答

1

你是模型綁定基類還是派生類?

如果我從幾個月前的某些實驗中正確記得,您需要綁定爲產品。您不能在您的操作方法或UpdateModel調用中使用CD。

您可能需要做兩組模型綁定才能使這項工作正確。一次用於產品驗證,另一次用於CD。

+0

如果這是真的,我會把它作爲另一個問題和可能的功能請求的好候選。 – 2010-06-30 13:42:53

+0

我綁定了派生類。那麼如果我想要基礎產品和派生CD,那麼這是如何工作的呢?我有一個強類型的視圖,它繼承了包含派生類(CD)的視圖模型。 謝謝 – 2010-06-30 13:43:57

+0

@John Ptacek我不知道你在問什麼。如果您擁有CD模型的視圖,則還可以使用產品模型查看視圖。 – jfar 2010-06-30 19:44:59