1

我在升级到 MVC4 时遇到了一个问题,我想知道是否有其他人看到过这个问题以及如何解决它。每当我将 IDictionary、Dictionary 或 RouteValueDictionary 放入操作的参数列表时,都会传递该 MVC 调用的路由值。

要重现此问题,请使用默认 Internet 应用程序设置创建一个 MVC4 Web 项目并添加

IDictionary<string, object> myDictionary = null 

到 Index 控制器的参数列表,并在方法中放置一个断点。您将看到 IDictionary 参数由模型绑定器使用路由值填充。

我该如何关闭它,或者解决这个问题?

4

1 回答 1

1

在查看 MVC4 的错误报告后,似乎正在使用 Dictionary<> 模型绑定器跟踪以下问题。

http://aspnetwebstack.codeplex.com/workitem/373

解决方法似乎是从参数列表中删除 Dictionary 并执行以下操作:

[HttpPost]
public void Index(FormCollection form)
{
     var values = new Dictionary<string, object>();
     this.UpdateModel(values, "values");
}

希望这对其他人有帮助。现在,如果他们只是修复它。有没有人有更好的解决方法?

于 2012-11-12T20:32:33.393 回答