如何知道Ajax Post是否成功?

时间:2015-08-23 12:33:53

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

当前代码示例:

    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> ActionName(ViewModel model)
    { 
        if (!ModelState.IsValid)
        {
            return PartialView(model);
        }
        var result = //something
        if (result.Succeeded)
        {
            return PartialView(model);
        }
        AddErrors(result);
        return PartialView(model);
    }

表格Html

@model ViewModel

@using (Html.BeginForm("ChangePassword", "Manage", FormMethod.Post, new { @id = "Form"}))
{
   @Html.AntiForgeryToken()
   @Html.ValidationSummary("", new { @class = "text-danger" })

//Controls

<div class="form-group">
    <input type="submit" value="Save" data-loading-text="Loading..." class="btn btn-default" />
</div>
}

JQuery代码模板:

    $("#Form").on('click', ".btn", function (e) {
    e.preventDefault();

    $.ajax({
        url: "Something/ActionName",
        //datatype: "text",
        data: $('#Form').serialize(),
        type: "POST",
        success: function (data) {                
            $("#Form").html(data);
        },
        error: function (result) {
            alert(result);
        }
    });
});

现在我如何知道AJAX POST是否成功并同时返回部分视图?返回PartialView以重置表单控件并清除最后一篇文章中的错误。

我们可以使用var和RenderPartialView创建一个Json结果作为字符串值。请参阅MVC Return Partial View as JSON

            if (data.Result == "Success") {
                alert("Data Saved");
            }
            $("#Form").html(data);

然而,我错过了一个更容易的选择吗?

0 个答案:

没有答案