むむっ・・・どこに隠されているのだ?MVC Create画面
データの登録画面を作ってみました。
めんどくさいんで、自動で生成されたビューを使いました。
コントローラーのほうはこれ(Actionメソッドだけ書きます)
public ActionResult AddCountries() { return View(); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult AddCountries(Country model) { if (ModelState.IsValid) { _db.Country.Add(model); _db.SaveChanges(); return View(); } return View(model); }
POSTメソッドのところで、正常に追加できたら、リダイレクトするのではなくて、そのまま画面をクリアして、追加を続けられますように!と願いをこめて書いた部分が、return View();
です。
でもね、画面はクリアされず、入力した値がそのまま残っちゃうんですよん。
なんでやねん!どないなっとるねん!
ってことで、デバック画面で正体をみつけました。
ブレークポイントをアクションメソッドのところに設定して、上の画面を表示・入力してCreateボタンを押します。
あったよーorz
上の赤枠の部分にその正体がありましたん。
で、SaveChange
とreturn
の間に、ModelState.Clear
メソッドを追加。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AddCountries(Country model)
{
if (ModelState.IsValid)
{
_db.Country.Add(model);
_db.SaveChanges();
ModelState.Clear();
return View();
}
return View(model);
}
思った通りに動きましたとさ。おしまい。