多くの状況で、値がポストバックされた結果としてサーバー上にモデルが作成されるという問題が発生しました。モデルの処理時に、モデル値の一部が変更され、ページに再表示されます。MVC フレームワークがモデル値の代わりに POSTed 値を使用する原因となる動作をオーバーライドする簡単な方法はありますか?
例:
モデル
public class MyModel {
public string Value1 { get; set; }
}
コントローラ
public MyController : Controller {
public ActionResult MyAction() {
var model = new MyModel();
model.Value1 = "OldValue";
return View(model);
}
[HttpPost]
public ActionResult MyAction(MyModel model) {
model.Value1 = "NewValue";
return View(model);
}
}
意見
@using(Html.BeginForm("MyAction", "My", FormMethod.Post) {
@Html.TextBoxFor(m => m.Value1)
<input type="submit"/>
}
このページが最初に読み込まれると、テキストボックスには「OldValue」が含まれます。送信をクリックした後、サーバーに POST されたものであるため、テキストボックスにはまだ「OldValue」が含まれていますが、モデルからの値 (NewValue) を使用して (POST 後に) 2 番目のページを作成したいと考えています。
このように動作するように MVC に指示する簡単な方法はありますか? この状況で、自分の望む結果を得るために何をすればよいのかよくわかりません。
注 - これはすべて疑似コードであるため、エラーが発生する可能性がありますが、概念はそこにあるはずです。