MVC4中集合的模型绑定是否有重大变化?

时间:2013-07-15 16:58:43

标签: asp.net-mvc-3 asp.net-mvc-4 autofac model-binding

好的,所以从MVC3迁移到MVC4之后我遇到了一个有趣的问题。 我们有一个带有以下签名的控制器方法:

public ActionResult Delete(Guid[] items)

这在MVC3中运行良好,但在升级到MVC4后停止工作 - items数组始终为空。我意识到在MVC4中我将不得不使用ICollection来使其工作:

public ActionResult Delete(ICollection<Guid> items)

这是一个突破性的变化吗?或者第一种方法并不是一种真正适合做事的方法,只是在MVC3中作为一个侥幸?

发布的数据看起来非常简单,如下所示:

items=52b37b94-1f53-4981-a698-9eb6eca30861&items=d2f8c5e5-4e04-4a97-8efd-643a4e87e48b

使用jQuery($ .post)

发布

1 个答案:

答案 0 :(得分:0)

好的,我弄清楚发生了什么。我开始创建一个全新的MVC4项目来创建一个vanilla测试用例,并且绑定适用于阵列和Guids集合。

挖掘后我意识到在升级过程中我们还将autofac DI容器从2.5版升级到3.0版。某些内部组件可能已更改,默认情况下已启用操作注入。

显然,动作注射会干扰模型绑定。