我有一个发布这些值的表格:
调查[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。
为什么??
我有一个发布这些值的表格:
调查[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。
为什么??
我只是在这里猜测,但我认为这是因为您的论点被称为“答案”而不是“调查”。您应该通过查看在 firebug 或 chrome 中易于执行的帖子标题来查看发布到您的方法的内容。当您检查“通过电线”传输的内容时,这更有意义
强制转换无效的事情可能是因为在您的场景中,当模型绑定器想要完成其工作时,答案为空。如果您使用 formscollection 而不是字典,您会发现您发布的所有内容都在那里。
出于某种奇怪的原因,当我删除“调查”并自行离开迭代(即 [0].Key)时,绑定工作正常。
我的知识基于这篇文章: http ://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx 这似乎是错误的???还是指以前版本的MVC???