2012-06-29 22 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

谢谢..有帮助 –