【问题标题】:Textbox value in MVC3 using ViewBag使用 ViewBag 的 MVC3 中的文本框值
【发布时间】:2012-06-29 11:28:57
【问题描述】:

考虑使用 Html Helper 创建的视图中的文本框字段。

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

在这种情况下,如果我在我的模型中传递了一些值(不是 null),那么我的文本框、ViewBag.x 或我在模型对象中传递的值将是什么?

【问题讨论】:

  • 测试代码时会发生什么?显示哪个值?
  • 您在问问题吗?还是在检查其他人的技能?
  • 不知道!..我正在测试它......但我想事先知道,所以我不必测试它:p
  • @HariGillala:只问问题
  • 测试它比打字、发帖和等待答案花费的时间要少得多。

标签: asp.net-mvc-3 textbox viewbag


【解决方案1】:

不能覆盖强类型助手的 value 属性。如果您使用ViewBag,请忘记强类型助手。一旦你走那条路,你就必须遵循它:

@Html.TextBox("x")

x 是您在控制器操作中填充到 ViewBag 中的东西:

ViewBag.x = "foo";

强类型助手使用模型并使用作为第一个参数传递的 lambda 表达式来获取值。

因此,如果您想正确地做事,请将ViewBag 扔掉并使用视图模型和强类型帮助器:

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

【讨论】:

  • 所以,你的意思是 ViewBag 属性将被使用,即使我的 Model.name 不为空,对吧?
  • 如果您使用 TextBoxFor,则不会使用 ViewBag。正如我在回答中所说,您不能覆盖 value 属性。
猜你喜欢
  • 2012-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多