【发布时间】:2009-08-26 18:23:13
【问题描述】:
我正在尝试通过调用UpdateModel(myObject, new[] { "stringprop1", "stringprop2", "intprop"}) 来更新一些对象属性。
由于未知原因而失败。几个字符串属性正在成功更新。当我尝试更新 int 属性时,它失败了。新的 int 值是从视图上的 html 选择列表发送的。
我可以从我的 ValueProvider 的视图中看到数据。键与对象的属性名称匹配,值是我对视图的期望(除了它是一个字符串。我认为 UpdateModel 可以处理简单的类型转换。
当我调用 UpdateModel 时,会引发 InvalidOperationException,仅当属性值发生变化时。
另外,该对象是 Linq To Sql 生成的对象。
编辑
在调用 TryUpdateModel 后查看模型状态,我在遇到问题的属性上看到了这个异常:
- Exception {"Operation is not valid due to the current state of the object."} System.Exception {System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException}
我要更新的值是外键。为什么我不能更新这个值?感谢您的帮助?
编辑 2
我发现了这个: http://social.msdn.microsoft.com/Forums/en-US/linqtosql/thread/f9c4a01a-195a-4f2b-a1cb-e2fa06e28b25
我可以发誓我之前更改了键而不是关联属性,但无论如何。在这种 MVC 模型绑定情况下可以做什么?
【问题讨论】:
标签: c# .net asp.net-mvc linq linq-to-sql