当模型与子类绑定时,ASP.net MVC出现问题

时间:2011-05-22 10:06:11

标签: asp.net asp.net-mvc data-annotations

我有两种类型的联系实体。一个只有一个电子邮件地址和一个驱动器,并包含一个邮政地址的字段。

我正试图让我的控制器动作与任何一种联系人一起工作,到目前为止已经发现了两个问题......

  1. 使用DataAnnotations进行验证时,其来自基类的验证字段来自子类的字段。我实际上希望这是以相反的顺序发生的。反正有没有重新安排订单?通常当然可以改变字段的顺序,但如果字段在不同的类中,这是不可能的。

  2. 我发现我需要手动创建模型,因为默认模型绑定器似乎只想创建操作参数中指定的特定类型。当我尝试用'UpdateModel'手动绑定模型时,即使它只绑定基类型字段(基类型是我的联系工厂返回的类型)。

  3. 有人对此有任何建议吗?看起来我将不得不恢复意大利面条代码,不断评估正在进行操作的联系方式。

    干杯,伊恩。

2 个答案:

答案 0 :(得分:1)

我认为您需要创建自己的ModelBinder。看看ASP.NET MVC 3: DefaultModelBinder with inheritance/polymorphism

答案 1 :(得分:0)

您可以尝试为两个联系人实体实施通用接口。并使用Interface in Action参数,验证Interface。