【发布时间】:2016-05-18 20:13:26
【问题描述】:
我有一个 ajax 表单,我想在其中调用两个不同的 javascript 函数,一个代表成功,一个代表失败。在这两个电话中,我pass data back from the server to the javascript。请注意以下几点:
我有这个想法
@using (Ajax.BeginForm("MyAction", null,
new AjaxOptions
{
HttpMethod = "POST", // HttpPost
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "myDiv",
OnSuccess = "callSuccess(data.msg)",
OnFailure = "callFailure(data.msg)",
}, new { @class = "form-inline" }))
{
... // my content
}
我的控制器在返回帖子时具有以下逻辑。
public ActionResult MyAction(string myString)
{
...
// If error occurred
return Json(new { success = false, msg= "Fail" });
...
// If no errors
return Json(new { success = true, msg= "Success" });
}
无论返回什么,OnSuccess 都是唯一被调用的。拨打OnFailure的正确方法是什么?
【问题讨论】:
-
您返回的有效数据(不抛出异常或返回错误代码),因此它将始终转到成功函数。
-
"success" 表示 ajax 调用成功 - 即 http 请求/接收过程完成且没有 http 错误。 AJAX 不知道您将“成功”属性设置为 false。
标签: javascript jquery ajax asp.net-mvc razor