0

我有一个对象,其中定义了一个列表,该列表指向可以继承的类型。据我了解,MVC 的默认模型绑定器在将数据从表单读回此数组时始终实例化基本类型,因此默认情况下我将拥有基本类型列表。

所以我需要使用我自己的模型绑定器并覆盖CreateModel以实例化特定类型(例如来自隐藏字段)。但是,当我这样做并使用

bindingContext.ValueProvider.GetValue("ModelType")

null即使通过使用提琴手,它总是返回,我可以看到表单值Settings[0].ModelType包含我的对象类型,我需要这个值CreateModel来实例化正确的类型。

4

1 回答 1

0

解决了。如果需要根据每个项目键入数组对象,则需要使用以下调用来“进入”数组项

bindingContext.ValueProvider.GetValue(bindingContext.ModelName + ".ModelType")

我不确定这是否是标准的方法。如果有人有更好的建议,请随时添加

于 2013-06-03T13:15:55.953 回答