私は ASP.NET Web フォームから抜け出したばかりで、現在は MVC の初心者です。ASP.NET Web フォームとは異なり、MVC は 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 用のものは保持されていませんでした。ここで何か間違ったことをしていますか?