Mvc4默认模型活页夹 - 词典

时间:2012-10-21 22:37:16

标签: asp.net-mvc dictionary default model-binding

我有一个发布这些值的表单:

调查[0] .Key 75

调查[0] .Value 4

调查[1]。关键76

调查[1] .Value 4

我试图使用默认模型绑定器将其映射到字典类型:

[HttpPost]
public ActionResult CompleteSurvey(Dictionary<int, int> answers)
{
...
}

但是我得到InvalidCastException:指定的强制转换无效。

为什么?

2 个答案:

答案 0 :(得分:1)

我只是在这里猜测,但我认为这是因为你的论点被称为'答案'而不是'调查'。您应该通过查看易于在firebug或chrome中执行的帖子标题来查看发布到您的方法的内容。当你检查“通过网络传输”的内容时,它会更有意义

强制转换无效的原因可能是因为在您的场景中,当模型绑定器想要完成其工作时,答案为空。如果您使用formscollection而不是字典,则会发现您发布的所有内容都在那里。

答案 1 :(得分:0)

由于某些奇怪的原因,当我删除“调查”并自行离开迭代(即[0] .Key)绑定工作正常。

我的知识基于这篇文章: http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx 那似乎是错的???或者它是指先前版本的MVC ???