我試圖通過調用UpdateModel(myObject, new[] { "stringprop1", "stringprop2", "intprop"})
來更新一些對象屬性。ASP.NET MVC UpdateModel意外失敗
這是失敗的原因不明。多個字符串屬性正在成功更新。當我嘗試更新一個int屬性時失敗。新的int值從視圖上的html選擇列表發送。
我可以在我的ValueProvider中查看來自視圖的數據。該鍵與對象的屬性名稱匹配,值是我期望從視圖(除了它是一個字符串,我認爲UpdateModel可以處理簡單的類型轉換)
當我調用UpdateModel時,拋出InvalidOperationException,屬性的值是調用TryUpdateModel後更改。
而且,對象是的LINQ to SQL生成的對象。
編輯
通過模型狀態看,我看到,我有麻煩的財產此異常與:
- Exception {"Operation is not valid due to the current state of the object."} System.Exception {System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException}
我試圖更新的值是一個外鍵。爲什麼我無法更新此值?謝謝你的幫助?
EDIT 2
我發現這一點: http://social.msdn.microsoft.com/Forums/en-US/linqtosql/thread/f9c4a01a-195a-4f2b-a1cb-e2fa06e28b25
我可以發誓,我已經改變了密鑰而不是之前的關聯屬性,但不管。在這個MVC模型綁定情況下可以做些什麼?
我遇到了與您描述的相同的問題,並且通過實例化新的DataContext解決了這個問題 - 但我無法解釋爲什麼。有任何想法嗎? – 2010-09-23 19:15:38