Asp.net mvc TryUpdateModel是特定于浏览器的

Asp.net mvc TryUpdateModel是特定于浏览器的,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,我刚刚遇到了一个场景,TryUpdateModel非常适合Chrome和其他浏览器,但不适用于IE9。在我开始拆分代码之前,有人知道为什么TryUpdateModel是特定于浏览器的吗 编辑 (进一步阐述):我对表单数据进行了模型绑定,它工作得很好,但当我检索原始对象并对其调用TryUpdateModel时(假设它将使用与模型绑定用于尝试更新模型相同的方法),它不会更新IE9中的模型。。。这是一个错误的假设吗?客户端表单很可能以特定于浏览器的方式运行,这会阻止参数正确发送到服务器。与其拆分代码,

我刚刚遇到了一个场景,TryUpdateModel非常适合Chrome和其他浏览器,但不适用于IE9。在我开始拆分代码之前,有人知道为什么TryUpdateModel是特定于浏览器的吗

编辑


(进一步阐述):我对表单数据进行了模型绑定,它工作得很好,但当我检索原始对象并对其调用TryUpdateModel时(假设它将使用与模型绑定用于尝试更新模型相同的方法),它不会更新IE9中的模型。。。这是一个错误的假设吗?

客户端表单很可能以特定于浏览器的方式运行,这会阻止参数正确发送到服务器。与其拆分代码,不如在控制器操作中设置一个断点,然后查看请求参数。

我可能在这里做了一个错误的假设,即我还将作为编辑添加到文章中。我对表单数据进行了模型绑定,效果很好,但是当我检索原始对象并对其调用TryUpdateModel时(假设它将使用与模型绑定用于尝试更新模型相同的方法),它在IE9中不起作用(但在Chrome中很好)。这是一个错误的假设吗?@Rikon:当你在行动中检查
ModelState.IsValid
时,你得到了什么
TryUpdateModel
如果模型无效(例如,如果未提供必填字段),即使它能够创建对象,也会返回false。啊,是的,我发现模型状态错误。我们使用了一种旧的方法来获取模型状态错误,但它没有捕捉到这一点。谢谢你的耐心。出于好奇,我想知道为什么模型状态在一个浏览器中有效而在另一个浏览器中无效。错误发生在空白的ModelState密钥上。。。它是如何尝试绑定一个空的key@Rikon:同样,我怀疑这与HTML与浏览器的交互方式有关。一个浏览器显然正在通过网络发送一个不同的参数值:可能发送一个空字符串作为其他浏览器根本不包含的参数?我几乎肯定我知道发生了什么,为什么没有其他人看到这种行为。我们已经用自己的渴望加载选项包装了亚音速。这是通过装饰poco来实现的,以使其了解如何加载。我几乎可以肯定的是,正是对poco的这些更改导致IE9在将模型传递到视图时错误地处理了模型。再次感谢您的观点和帮助,我非常感谢!