我有两种类型的联系实体。一个只有一个电子邮件地址和一个驱动器,并包含一个邮政地址的字段。
我正试图让我的控制器动作与任何一种联系人一起工作,到目前为止已经发现了两个问题......
使用DataAnnotations进行验证时,其来自基类的验证字段来自子类的字段。我实际上希望这是以相反的顺序发生的。反正有没有重新安排订单?通常当然可以改变字段的顺序,但如果字段在不同的类中,这是不可能的。
我发现我需要手动创建模型,因为默认模型绑定器似乎只想创建操作参数中指定的特定类型。当我尝试用'UpdateModel'手动绑定模型时,即使它只绑定基类型字段(基类型是我的联系工厂返回的类型)。
有人对此有任何建议吗?看起来我将不得不恢复意大利面条代码,不断评估正在进行操作的联系方式。
干杯,伊恩。
答案 0 :(得分:1)
我认为您需要创建自己的ModelBinder。看看ASP.NET MVC 3: DefaultModelBinder with inheritance/polymorphism。
答案 1 :(得分:0)
您可以尝试为两个联系人实体实施通用接口。并使用Interface in Action参数,验证Interface。