2012-06-29 21 views
-4

考慮使用Html Helper製作的View中的文本框字段。使用ViewBag在MVC3中的文本框值

@Html.TextBoxFor(m=>m.name, new {@value=ViewBag.x}); 

在這種情況下,如果在我的模型我傳遞一些值(NOT NULL),那麼這將是我的文本框,在ViewBag.x,或者我已經在我的模型對象傳遞的一個值??

+2

當你測試你的代碼會發生什麼?哪個值顯示? –

+0

你在問一個問題嗎?或者你在檢查其他技能? –

+0

不知道!Iam現在正在測試它...但我想事先知道,所以我不必測試它:p –

回答

2

不能覆蓋強類型助手的value屬性。如果您使用ViewBag,請忘記強類型助手。一旦你走這條路,你必須遵循它:

@Html.TextBox("x") 

其中x的東西,你已經在你的控制器動作塞進ViewBag:

ViewBag.x = "foo"; 

強類型的輔助與模型工作並使用作爲第一個參數傳遞的lambda表達式來獲取值。

所以,如果你想要做正確的事情拋ViewBag拿走並使用視圖模型和強類型的輔助:

@Htlm.TextBoxFor(model => model.X) 
+0

因此,即使我的Model.name不爲null,你的意思是使用ViewBag屬性,對嗎? –

+1

如果您使用TextBoxFor,則不會使用ViewBag。正如我在我的回答中所說的,你不能覆蓋'value'屬性。 –

+0

謝謝..有幫助 –