サーバー側でエラーが発生した場合、Ajax.BeginForm の OnFailure イベントを呼び出すにはどうすればよいですか?
OnComplete 関数でエラーを処理する必要がありますか?
意見
<script type="text/javascript">
function PullIntoTable(e) {
・・・・・
}
function search_start() {
....
}
function Failure() {
alert("Called!!");
}
.........
</script>
@using (Ajax.BeginForm("Search", "SearchCompanyJP",
new AjaxOptions { HttpMethod = "POST", OnBegin = "search_start", OnSuccess = "PullIntoTable", OnFailure = "Failure", OnComplete = "search_close" }))
{
<div>
<span class="label">Company</span>
@Html.TextBoxFor(m => m.CompanyName, new { @class = "textbox" })
</div>
<div>
<span class="label">Address</span>
@Html.TextBoxFor(m => m.Address, new { @class = "textbox" })
</div>
<input type="submit" value="Search" />
}
XXXService.cs -- コントローラーによって呼び出されます
Insertable = false;
if (Insertable)
{
・・・・・
}
else
{
throw new CustomException(action, message);
}
Global.asax --- ajax のため、このリダイレクトは機能しません。そのため、Failure 関数を実装しました。
void Application_Error(Object sender, EventArgs e)
{
var exception = Server.GetLastError();
Server.ClearError();
Response.Redirect("/Error", false);
}