我有一个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,但似乎没让我开始。
谢谢!
答案 0 :(得分:1)
你是模型绑定基类还是派生类?
如果我在几个月前的某些实验中记得正确,你需要绑定为产品。您不能在操作方法或UpdateModel调用中使用CD。
您可能需要执行两组模型绑定才能使其正常工作。一次用于产品验证,另一次用于CD。