1

好吧,这可能是一个愚蠢的问题,我无法搜索任何相关问题,也许这不是问题

例如。我的 mvc 4 应用程序中有一个像这样的导航菜单

  • @Html.ActionLink("Driver", "Index", "Driver")
  • @Html.ActionLink("Vehicle", "Index", "Vehicle")
  • 在 Driver controller index Get 我有一个来自数据库的模型并在视图中显示所有内容,用户在不提交的情况下进行更改并单击菜单操作链接以转到 Vehicle 页面,然后再次返回 Driver 页面。

    我想要的是在驱动程序索引页面中我可以保留最后的更改并显示它,但是在驱动程序控制索引 GET 中我必须从数据库中获取所有内容,因为我没有帖子来保存对 tempdata 的最后更改。

    有任何想法吗?非常感谢你

    更新:非常感谢菲利普关于答案,但仍然有点问题。由于 ActionLink 发生在 $(window).unload 之前,如果我在 jQuery 中将帖子提交到服务器,则回发将失去方向。

    4

    1 回答 1

    0

    我会尝试捕捉onbeforeunload事件并检查用户是否对模型进行了修改。

    如果有更改,您可以将它们保存在浏览器本地或会话存储(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));
    
    于 2013-07-29T18:10:29.263 回答