2010-09-02 113 views
6

不同的值這很奇怪,我不知道爲什麼。我有渲染時爲我的對象,返回一些值一個ViewModel,他們有不同的價值觀,然而,它們指向同一個屬性:ASP.NET MVC Html.TextBoxFor呈現與<%:Model.value%>

<%: Model.myProperty %> 

返回「25」,這是我給自己定財產是。但是,當它作爲一個文本框呈現時,它返回「0」作爲我的文本框的值!

<%: Html.TextBoxFor(f => f.myProperty) %> 

任何想法爲什麼?該屬性是十進制類型。謝謝。

+0

你在什麼時候將數值設置爲25? – 2010-09-02 21:07:38

+0

該代碼不會編譯。錯字?應該是'<%= Html.TextBoxFor(f => f.myProperty)%>'。 – GenericTypeTea 2010-09-02 21:10:37

+0

我有一些邏輯之前,以確定myProperty的值,然後像這樣: var model = new MyViewModel {myProperty = 25}; 當我運行調試,它清楚地顯示myProperty = 25,它反映時,它呈現爲文本,但對於文本框,它不!謝謝。 – Saxman 2010-09-02 21:12:46

回答

0

我的不好,看起來問題是在HTML中,我有從多個部分視圖呈現的視圖,並且輸入的一些ID是相同的(我隱藏編輯視圖並呈現主視圖jQuery),不知何故,這個文本框從隱藏的視圖中獲取價值! :)

感謝所有的期待。

15

在調用View或PartialView並傳入模型之前,請嘗試ModelState.Clear()。

這個問題發生在我後做一個職位。這是因爲在檢查實際模型之前,HTML幫助程序首先從ModelState獲取它們的值。看起來像這個應該是逆轉國際海事組織。

+0

我同意,在許多情況下這不是令人滿意的行爲。這裏有另一個相關的問題:http://stackoverflow.com/questions/1775170/asp-net-mvc-modelstate-clear。 – 2014-04-24 19:06:46

0

也有同樣的問題,我今天看了這篇文章(它解決了我的問題),並決定對此進行更多的調查。所以,這裏是我發現的:

「ASP.NET MVC假定,如果您要呈現視圖以響應HTTP POST,並且您正在使用Html Helpers,那麼您最有可能重新顯示錶單驗證失敗。因此,HTML輔助實際檢查中的ModelState在一個字段中顯示的值,他們的模型看之前「通過:西蒙Ĵ因斯

如果你想了解更多關於這一點,訪問波紋管鏈接: http://blogs.msdn.com/b/simonince/archive/2010/05/05/asp-net-mvc-s-html-helpers-render-the-wrong-value.aspx

再見。

相關問題