2012-02-22 73 views

回答

23

在你的控制器將這個:

ModelState.Remove("JobIndicator"); 

那麼你的隱藏字段將被更新。

+1

我喜歡這個答案,但我討厭這種行爲;不是很直觀。它似乎很少出現,因爲我在POST POST之前更改了字段值客戶端,或者我正在創建一個新模型,但是如果設置了值,我希望它被設置。 – LoveMeSomeCode 2016-03-10 21:18:27

+2

它幫助我通過使用代替@ Html.HiddenFor(m => m.Name ) – ravithejag 2016-05-19 09:40:01

+0

爲什麼有人可以解釋這一點。 – maxspan 2016-08-04 21:53:22

-1

只要確保把該行的窗體標記內

@Html.HiddenFor(model => model.JobIndicator) 
7

的問題是HTML輔助從ModelState從模型中獲取數據,而不是傳遞當你調用後行動。要解決這個問題,您可以在返回視圖之前調用ModelState.Clear(),這樣在重新生成視圖後,ModelState中的信息將被清除並重新填充。

您可以找到有關這個問題(和其他解決方案)在此blog

0

跑這個問題我的詳細信息。一個解決方案(雖然不夠高雅)是爲了使用基本的HTML語法並使用模型的值。

<input type="hidden" name="JobIndicator" value="@Model.JobIndicator">