我在升级到MVC4时遇到了问题,我想知道是否有其他人看到过这个问题以及如何解决这个问题。每当我将IDictionary,Dictionary或RouteValueDictionary放入动作的参数列表时,就会传递该MVC调用的路由值。
要重现此问题,请使用默认的Internet应用程序设置创建MVC4 Web项目并添加
IDictionary<string, object> myDictionary = null
到Index控制器的参数列表中,并在方法内放置一个断点。您将看到IDictionary参数由模型绑定器填充路径值。
如何关闭此功能或解决此问题?
答案 0 :(得分:1)
在查看MVC4的错误报告后,使用Dictionary&lt;&gt;跟踪以下问题。模型活页夹。
http://aspnetwebstack.codeplex.com/workitem/373
解决方法似乎是从参数列表中删除Dictionary并执行以下操作:
[HttpPost]
public void Index(FormCollection form)
{
var values = new Dictionary<string, object>();
this.UpdateModel(values, "values");
}
希望这有助于其他人。现在,如果他们只是修复它。有没有人有更好的解决方法?