【发布时间】:2012-07-02 11:42:39
【问题描述】:
我刚从 ASP.NET Web 窗体中出来,现在是 MVC 新手。 我读过 MVC 不像 ASP.NET Web 窗体那样管理 ViewState。我想知道如何实现数据持久化。
我有一个带有强类型模型的简单表单:
class MyModel
{
public string TextboxData { get; set; }
public string HiddenData { get; set; }
}
采用以下形式:
@using (Html.BeginForm())
{
@Html.TextBoxFor(m => m.TextboxData)
@Html.HiddenFor(m => m.HiddenData)
}
我的控制器是一个简单的控制器。它只是简单地处理模型中的数据并将其传递回视图:
[HttpPost]
public ActionResult PerformAction(MyModel mv)
{
mv.DoSomething();
return View(mv);
}
由于控制器只是重用模型,我是否正确地假设所有通过先前提交输入的数据将在下次刷新时保留?
实际上,TextboxData 的那个被保留了(回发后,文本框仍然包含输入的数据),但 HiddenData 的那个没有被保留。我在这里做错了吗?
【问题讨论】:
-
进行回发时,控制器中的 mv.HiddenData 变量是否填充了数据?如果没有,数据当然不会发送到视图。是的,你是正确的,当 mv 包含两个属性的内容时,它们应该显示在视图中。我假设您在 HttpGet 中输入隐藏字段的数据(因为您无法在表单的隐藏字段中输入它..)
标签: .net asp.net-mvc postback