代表。我在我的mvc 4应用程序中有一个导航菜单,如下所示
@Html.ActionLink("Driver", "Index", "Driver")
@Html.ActionLink("Vehicle", "Index", "Vehicle")
驱动程序控制器索引中的
获取我从数据库中获取模型并在视图中显示所有内容,用户在没有提交的情况下进行更改,然后单击菜单操作链接转到“车辆”页面,然后再次返回“驱动程序”页面。
我想要的是在驱动程序索引页面中我可以保留最后的更改并显示它,但在驱动程序控制索引GET中我必须从数据库中获取所有内容,因为我没有发布以保存最后一次更改为tempdata。 / p>
任何想法?非常感谢你
更新:非常感谢菲利普的答案,但仍然有点问题。 因为ActionLink发生在$(window).unload之前,如果我在jQuery中将一个帖子发送到服务器,则回发将失去方向。
答案 0 :(得分:0)
我会尝试捕获onbeforeunload
事件并检查用户是否对模型进行了修改。
如果有更改,您可以将这些更改保存在浏览器local or session storage(HTML5)中,或将它们发布到服务器(Web服务)。
在下次重新加载页面时,您必须检查存储或向服务器询问模型。
(function ($) {
var isDirty = false;
$(function(){
// check local/session storage OR fetch data from server.
});
$(':input').change(function () {
isDirty = true;
});
$(window).unload(function () {
if (isDirty) {
// store changes in local/session storage OR post them to the server.
}
});
}(jQuery));