Asp.NET MVC模型绑定不拾取列表项的值

时间:2013-06-03 12:53:07

标签: asp.net asp.net-mvc-4 model-binding

我有一个对象,里面定义了一个列表,指向一个可以继承的类型。根据我的理解,MVC的默认模型绑定器总是在从表单读回数据时实例化基类型,因此默认情况下我会有一个基类型列表。

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

bindingContext.ValueProvider.GetValue("ModelType")

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

1 个答案:

答案 0 :(得分:0)

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

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

我不确定这是否是标准的做法。如果有人有任何更好的建议随时添加它们