2011-11-01 134 views
5

MVC @Html.TextBoxFor(model => model.SomeNotNullableType)使用此幫助程序時,如果數據庫中存在不可空的類型,則視圖最終會在文本框中顯示默認值。特別是在我的情況下,該字段採用整數,並將字段中的默認值設置爲0。MVC @ Html.TextBoxFor(model => model.SomeNotNullableType)插入默認值

我知道我可以用Javascript或setting the default value in html刪除錯誤的0,但我一直希望有這樣做的更「正確」的方式。我可以在我的模型中指定我不希望將默認視圖放入文本框(您不能將其設置爲空,因爲它不能爲空)。堅持真正的模型方法,我想在模型/控制器中修正它,而不是在視圖中。

回答

3

可能會爲該模型類添加一個視圖模型,其中包含可爲空的int屬性(以及該類的所有其他屬性),然後使用數據註釋將其設置爲必需字段將符合您的要求。

你只需要將滾動視圖模型回你的數據持久化類控制器。

+0

我同意這可能是最好的一段路要走,但我希望我不會需要創建具有可空類型每個模型「幫手」的ViewModels。 – Rastapopulous

+0

好,理論上你不應該繞過持久性擺在首位的對象,所以你總是需要某種類型的顯示層和數據層之間的中間階級。 –

+0

好吧,我要回答同樣的問題,但被一位同事問了一個問題,你打敗了我!做得好。 –

0

您可以創建在其上創建文本框,您可以設定值時,它的默認值int類型的自定義編輯器(部分圖)。