0

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

调查[0].Key 75

调查[0].值 4

调查[1].Key 76

调查[1].Value 4

我正在尝试使用默认模型绑定器将其映射到 Dictionary 类型:

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

但我得到 InvalidCastException: Specified cast is not valid。

为什么??

4

2 回答 2

1

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

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

于 2012-10-22T19:04:17.193 回答
0

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

我的知识基于这篇文章: http ://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx 这似乎是错误的???还是指以前版本的MVC???

于 2012-10-21T23:23:26.860 回答