ASP.NET MVC 4 を使用しています。
ModelState が適切に渡されているとは思えませんが、
コントローラーのアクション: Home/EnrollResultは次のようになります。
[HttpPost]
public ActionResult EnrolResult(UploadModel model)
{
if (ModelState.IsValid)
{
// my codes in here
return View();
}
return View("~/Views/Home/Index", model);
}
View: Home/Index、次のとおりです。
@using (Html.BeginForm("EnrolResult", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary()
@Html.LabelFor(m => m.Firstname)
@Html.TextBoxFor(m => m.Firstname)
@Html.LabelFor(m => m.Surname)
@Html.TextBoxFor(m => m.Surname)
<li data-role="fieldcontain">
<input type="submit" value="Enrol" />
</li>
}
詳細を正しく入力すると、正しく機能し、登録結果ビューが表示されます。
詳細を間違って入力すると、ホーム/インデックスに戻りますが、フォームが入力されていないという検証エラーは表示されません。
EnrolResult アクションをインデックス アクションに変更し、検証エラーが正しく表示された場所でテストしたため、モデルは正しく設定されています。この場合に行うこと。
私のやり方は正しいですか?人々が TempData を使用しているのを見てきましたが、この方法は機能すると思いましたか?