默认情况下在MVC4中传递RouteValueDictionary

时间:2012-11-12 20:12:05

标签: asp.net-mvc-4 mvcroutehandler

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

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

IDictionary<string, object> myDictionary = null 

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

如何关闭此功能或解决此问题?

1 个答案:

答案 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");
}

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