在ajax表单提交时不调用OnFailure / OnSuccess

时间:2012-08-24 13:52:54

标签: asp.net-mvc jquery ajax-forms

我正在尝试提交ajax表单,我想要的是在成功和/或失败时显示确认消息。

但这两个函数从未调用过。

@using (Ajax.BeginForm("Transfer", "Location", null, new AjaxOptions
{
    UpdateTargetId = "update-message",
    InsertionMode = InsertionMode.Replace,
    HttpMethod = "POST",
    OnSuccess = "updateSuccess",
    OnFailure = "updateFailure"

}, new { @id = "transferForm" }))
{
  // html here
}
<div id="update-message"></div>
<div id="commonMessage"></div>

这是脚本:

<script>
function updateSuccess() {
    if ($("#update-message").html() == "True") {
        $('#commonMessage').html("The ownership has been transfered.");
        $('#commonMessage').delay(400).slideDown(400).delay(4000).slideUp(400);
    }
    else {
        $("#update-message").show();
    }
}
function updateFailure() {
    if ($("#update-message").html() == "False") {
        $('#commonMessage').html("The ownership has NOT been transfered.Error     occured.");
        $('#commonMessage').delay(400).slideDown(400).delay(4000).slideUp(400);
    }
    else {

    }
}
</script>

表单提交后,我可以看到它返回True / False,并显示在“update-message”div中。但确认从未出现过。 即使我在onFailure / onSuccess中使用“警报”,警报也不会显示。

任何帮助人员?

编辑: 控制器的返回消息显示在div中。但是没有显示确认消息。 enter image description here

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

function updateSuccess() {
        $('#commonMessage').html("The ownership has been transfered.");
        $('#commonMessage').delay(400).slideDown(400).delay(4000).slideUp(400);
}

function updateFailure() {
    $('#commonMessage').html("The ownership has NOT been transfered.Error     occured.");
    $('#commonMessage').delay(400).slideDown(400).delay(4000).slideUp(400);
}

因为在ajax操作之后更新了div

注意:“OnSuccess”是否意味着“操作返回true”?另外,“OnFailure”=“动作返回错误”?为什么使用“if statement”?