1

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 を使用しているのを見てきましたが、この方法は機能すると思いましたか?

4

1 に答える 1