UpdateTargetID が設定された Ajax.BeginForm を持つ部分ビューがあります。フォームの検証が失敗すると、更新ターゲット ID は検証エラーに置き換えられますが、検証エラーがない場合、ユーザーは新しいページにリダイレクトされる必要があります。
私の部分ビューのコードは
<div id="div_UID">
<% using (Ajax.BeginForm("FindChildByUID", new AjaxOptions { UpdateTargetId = "div_UID" } ))
{%>
<p>
<label>UID:</label>
<%= Html.TextBox("UID") %>
</p>
<input type="submit" value="Continue" />
<% } %>
</div>
</pre>
私のコントローラーのコードは次のとおりです
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult FindChildByUID(Student student)
{
Student matchingStudent = _studentService.FindChildByUID(student.UID);
if (matchingStudent == null)
{
ModelState.AddModelError("UID", String.Format("No matching child found for the entered UID: {0}", student.UID));
return PartialView();
}
else
{
// full view
return RedirectToAction("ConfirmChildDetails", matchingStudent);
}
}
そのため、Ajax.BeginForm で指定された UpdateTargetID div で常に完全なビューを表示しているように見えるため、完全なビューを単独で表示することに失敗しました。
これを機能させる方法について何か提案はありますか?
ありがとう