使用 MVC3、C# 中的视图模型中的新数据更新视图

本文关键字:数据 新视图 更新 模型 MVC3 视图 使用 新数据 | 更新日期: 2024-11-06 18:57:21

我在控制器中有ajax行动调用,在它更新数据库并成功完成后,我可以这样做:

return PartialView("Overview", mydatamodel);

然后在成功做到这样:

success: function (data) { 
            // do something with the data => refresh some
            // portion of your DOM
            $('#someDivId').html(data);
        }

它可以正常工作,但我需要的是更新视图模型中的集合,并使用新数据再次呈现整个视图。

例如,如果我有

提交按钮,我可以这样做,然后整个视图都会用新数据更新,但是如果我有 ajax 调用,我该怎么做。

这是指向我上一篇文章的链接,其中有更多详细信息:MVC3 提交后接收新模型数据

提前谢谢你!

使用 MVC3、C# 中的视图模型中的新数据更新视图

如果要

更新整个视图,请不要使用 AJAX。只需使用提交按钮。AJAX 的全部意义在于只更新视图的一部分,而不离开当前页面。

顺便说一下,您可以使用window.location.href在客户端重定向:

success: function (data) { 
    window.location.href = '@Url.Action("Overview", "SomeController")';
}

但是,如果您总是在成功的 AJAX 回调中重定向,则实际上没有必要这样做。在这种情况下不应使用 AJAX。

通常,

在请求完成后只希望更新视图的一部分的情况,使用 AJAX。

如果出于某种原因,即使在这种情况下也需要使用 AJAX(例如,使用 DELETE HTTP 动词发送请求),您可以执行以下操作:

window.location.href = '/Items/123';

success回调函数中,该函数有效地触发了整页更新。