如何在Ajax发布后更新我的视图

时间:2015-09-21 18:50:07

标签: jquery ajax asp.net-mvc asp.net-mvc-4 razor

我在MVC环境中,我从我的View调用我的一个Controller方法。控制器方法随后进行一些验证检查并返回到错误的模型状态

的相同视图

此时,我期待所有的验证字段如下所示:

<td>@Html.ValidationMessageFor(m => m.Comments)</td>

点亮错误消息。那没有发生。我认为这是因为我需要使用新的错误模型重新加载视图。我怎么能这样做?

以下内容摘自我的Ajax代码:

$("#Save").click(function () {
        var model = {
            ApplicationNumber: '@Model.ApplicationNumber',
            ApplicationId :'@Model.ApplicationId' ,
            Name: $('#Name').val(),
            CreateDate: $('#CreateDate').val(),
            OverrideHireDate: $('#OverrideHireDate').val(),
            Amount: $('#Amount').val(),
            VendorId: $('#Vendor').val(),
            Comments: $('#Comments').val(),
            CurrentState: '@Model.CurrentState',
            CurrentStatusDate: '@Model.CurrentStatusDate'
    };
        $.ajax({
            data: model,
            url: '@Url.Action("SaveApplication", "Applications")',
            type: "POST",
            success: function (result) {
                $(function () {
                    // some code to activate validation controls?
                });
            }
        });
    });

以下是我的控制员:

public ActionResult SaveApplication(ApplicationModel application)
        {
            if (!ModelState.IsValid)
            {
               // ModelState.AddModelError("Name", "This is a Test");
                return View("New",application);
            }

            ApplicationBLL.SaveApplication(application);
            return Content(string.Empty);
        }

2 个答案:

答案 0 :(得分:0)

好的可能这是非常微不足道的,但这就是诀窍。

在AJAX Post的OnSuccess中,我确实放了以下内容并且有效:

 $("body").html(result);

答案 1 :(得分:0)

如果您的值是在数据库中更新的,或者您是在控制器中获得的,而您只需要在ajax调用的成功函数中添加以下代码,

location.reload(true);

这将起作用...