2

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

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

public string[] AI { get; set; }

我的查询字符串包括表单中的其他内容:

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

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

MyAction(string[] AI)

然后填充 AI 参数,就像我期望的模型属性一样。这是默认模型绑定器中的错误吗?我尝试制作该属性List<string>,但也没有用。

有任何想法吗?

4

1 回答 1

1

我生命中最大的荷马 DOH。我所做的很好,如果它使用我在帖子中声称的 DefaultModelBinder,MVC 会很好地绑定它;但是,在需要绑定的模型中添加额外的值也无法绑定(简单的布尔值?)我深入挖掘并发现自定义绑定器已在 MVC 中注册了模型的类型,并且它正在为每个属性做一些事情模型,因此对我的新模型无能为力,:(。

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

于 2012-10-31T11:14:37.230 回答