2011-05-22 54 views
3

我有两种类型的联系实体。一个只有一个电子邮件地址和一个驱动器,并且包含用于邮政地址的字段。当模型与子类绑定时出现ASP.net MVC问题

我试图让我的控制器操作的工作与任一类型的接触和迄今偶然到两个问题......

  1. 当验证发生使用DataAnnotations,其验证领域从基类之前来自子类的字段。我其实想要以相反的顺序发生。无论如何重新安排订单?通常当然可以改变字段的顺序,但是如果字段在不同的类中,这是不可能的。

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

任何一个有做这个有什么建议?看起来我不得不恢复到意大利式面条代码,这些代码不断评估正在操作的联系人的类型。

干杯,伊恩。

+0

嗯,我已经通过使用两个不相关的联系人视图模型,两个不同的局部视图,没有键入主网页的模型以及控制器中的大量'if'语句来工作。我猜MVC不适合某些关键位置的多态性!您可以看到,模型联编程序没有考虑模型的运行时类型,因为在MVC源代码中,可以看到它根据类型参数查找类型信息,而不是传入对象的类型。 – 2011-05-22 17:14:11

+0

请告诉我有更好的方法! – iwayneo 2011-06-26 16:33:18

回答

0

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