2010-06-30 69 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