MC2中的数据注释 - 基类验证问题

时间:2010-06-30 12:02:01

标签: asp.net-mvc entity-framework-4 data-annotations

我有一个Entity Framework 4模型第一层,其中我有一个Product基类,然后是从该类派生的不同类。对于每种类型的产品,都有一个部分类,然后每个部分类使用一个伙伴类进行数据注释。

[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应用程序中的基类验证(对于产品)没有发生在服务器端。我还没有尝试过客户端。

从Product派生的类(如CD)确实可以进行验证。我知道伙伴类的连线正在为基础产品类工作,因为正在使用我正在使用的显示名称。当我对模型进行绑定时,我使用派生类(CD)。

有什么想法吗?

我看了这个SO Post,但似乎没让我开始。

谢谢!

1 个答案:

答案 0 :(得分:1)

你是模型绑定基类还是派生类?

如果我在几个月前的某些实验中记得正确,你需要绑定为产品。您不能在操作方法或UpdateModel调用中使用CD。

您可能需要执行两组模型绑定才能使其正常工作。一次用于产品验证,另一次用于CD。