使用CustomModelBinder更改列表项的类型

时间:2011-06-28 13:27:47

标签: model-view-controller asp.net-mvc-3

我需要绑定一个“Field”类型的实体,该实体将List作为属性。该列表将具有混合类型的行为,但所有行为都继承自行为。我需要列表与正确的派生类型绑定,以便它们可以正确保存。

我正在使用MvcContrib库中DerivedTypesModelBinder中使用的技术,我在每个实体上都有一个属性,它包含需要创建的类型。该字段称为“XxModelTypexX”。

我的问题是,我不确定如何更改自定义模型绑定器中的属性类型。每次我尝试它只是绑定一个通用的行为列表。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

好的,所以我明白了。基本上即使行为列表是Field上的属性,您仍然必须将其添加到Global.asax文件中使用自定义模型绑定器的类型列表

System.Web.Mvc.ModelBinders.Binders.Add(typeof(Types.Behaviour), new ConcreteTypeModelBinder());

有了这条线,我就改变了代码类型。