MVC3:如何将查询字符串数组绑定到模型中?

时间:2012-10-29 11:04:18

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

我有一个没有参数的行动。我在视图中有一个表单,可以对此操作进行GET操作。 在动作中我实例化一个对象(所以我可以从DB获得一些默认值),然后我在它上面使用UpdateModel()使用DefaultModelBinder。

所以我的模型具有以下属性def:

public string[] AI { get; set; }

我的查询字符串中的其他内容包含:

?AI=12-345&AI=45-43&AI=48-546

在操作调用UpdateModel()之后,AI属性为null! 但是,如果我将动作定义更改为:

MyAction(string[] AI)

然后填充AI参数,因为我期望模型属性。这是默认模型绑定器中的错误吗?我尝试制作属性List<string>,但这也不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我生命中最大的荷马人。 我正在做的很好,如果它正在使用我在帖子中声明的DefaultModelBinder,MVC会将它绑定得很好然而,为需要绑定的模型添加额外的值也无法绑定(简单的bool?)我深入挖掘并发现自定义绑定器已经注册了MVC用于模型的类型,并且它正在为每个属性执行操作模型,因此对我的新模式无所作为:(。

所以这个故事的寓意是不要忘记检查活页夹注册,或者只是不使用注册并且总是明确说明。