2011-08-26 62 views
0

我剛剛遇到TryUpdateModel適用於Chrome和其他瀏覽器的情況,並且在IE9中不起作用。在我開始分解代碼之前,有誰知道爲什麼TryUpdateModel是瀏覽器特定的?TryUpdateModel是瀏覽器特定的

編輯

(爲了進一步詳細描述):我的模型綁定的表單數據和它完美的作品,但是當我找回原來的對象,然後調用TryUpdateModel它(假設它會用同樣的方法該模型綁定用於嘗試更新模型)它不更新IE9中的模型......這是一個糟糕的假設嗎?

回答

1

客戶端表單以瀏覽器特定方式運行的可能性更大,這阻止了參數正確發送到服務器。不要分割代碼,只需在控制器操作中放置一個斷點並查看請求參數即可。

+0

我可能在這裏做出了一個糟糕的假設,我還將添加爲該帖子的編輯。我的模型綁定了表單數據,並且它完美地工作,但是當我檢索原始對象並在其上調用TryUpdateModel時(假設它將使用與用於更新模型的模型綁定相同的方法),它不起作用在IE9(但在Chrome瀏覽器中很好)。這是一個糟糕的假設嗎? – Rikon

+0

@Rikon:當你在動作中檢查「ModelState.IsValid」時會得到什麼?如果模型無效(例如,如果沒有提供Required字段),TryUpdateModel將返回false,即使它能夠創建對象。 – StriplingWarrior

+0

啊,是的,我發現模型狀態錯誤。我們使用舊的方式來獲取模型狀態錯誤,但它沒有捕捉到這一點。謝謝你的耐心。出於好奇,任何想法爲什麼模型狀態在一個瀏覽器中是有效的,而不是另一個。這個錯誤發生在一個空白的ModelState鍵上......它甚至試圖綁定一個空鍵 – Rikon