我在控制器中进行了ajax调用,在更新数据库并成功完成后我可以这样做:
return PartialView("Overview", mydatamodel);
然后在成功中这样做:
success: function (data) {
// do something with the data => refresh some
// portion of your DOM
$('#someDivId').html(data);
}
它可以正常工作,但我需要的是视图模型中的一个集合要更新,并且整个视图将再次使用新数据进行渲染。
我可以这样做,例如我有提交按钮,然后使用新数据更新整个视图,但如果我有ajax调用,我该怎么做。
这是我之前发布的帖子的链接,其中包含更多详细信息: MVC3 receiving the new model data after submit
提前谢谢!
答案 0 :(得分:3)
如果要更新整个视图,请不要使用AJAX。只需使用提交按钮即可。 AJAX的重点是只更新视图的一部分而不导航离开当前页面。
顺便说一句,您可以使用window.location.href
重定向客户端:
success: function (data) {
window.location.href = '@Url.Action("Overview", "SomeController")';
}
但是如果你总是在成功的AJAX回调中重定向,那么真的没有必要这样做。在这种情况下,您不应该使用AJAX。
答案 1 :(得分:1)
对于您只希望在请求完成后更新视图的一部分的情况,您通常会精确地使用AJAX。
如果您出于某种原因,即使在这种情况下也需要使用AJAX(例如,使用DELETE
HTTP动词发送请求),您可能会执行类似
window.location.href = '/Items/123';
在您的success
回调函数中,它有效地触发了整页更新。