Javascript 启用/禁用返回按钮以查看MVC中以前的部分视图

Javascript 启用/禁用返回按钮以查看MVC中以前的部分视图,javascript,jquery,asp.net-mvc,asp.net-mvc-4,history.js,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 4,History.js,我使用MVC4和EF开发了单页应用程序。我在单击各种菜单(在标题中可用)时加载不同的局部视图 现在,我禁用了浏览器返回按钮 下面是一个场景。。 用户单击Menu1并查看PartialView1,然后单击Menu2并查看PartialView2 现在,我想回到前面的视图(即:PartialView1)。浏览器的返回将不起作用 我尝试使用history.js文件并尝试了。它不起作用,因为它现在已经过时了。我怎样才能做到这一点 这是我的Ajax发布代码。。。 navigateElement:函数(ac

我使用MVC4和EF开发了单页应用程序。我在单击各种菜单(在标题中可用)时加载不同的局部视图

现在,我禁用了浏览器返回按钮

下面是一个场景。。 用户单击Menu1并查看PartialView1,然后单击Menu2并查看PartialView2

现在,我想回到前面的视图(即:PartialView1)。浏览器的返回将不起作用

我尝试使用history.js文件并尝试了。它不起作用,因为它现在已经过时了。我怎样才能做到这一点

这是我的Ajax发布代码。。。 navigateElement:函数(actionUrl、ContaineReem){

上面的will方法将检索局部视图,并在PageContainer(我根据用户操作生成不同局部视图的视口)中进行替换

现在,我如何在用户查看的部分视图之间向前/向后导航


显然,在DB中存储访问的部分视图会在这段时间内导致性能下降,因为该应用程序的目标受众数量很大。

就使用SPA和AJAX而言,我认为这是一种相当常见的情况。如果你能保证与HTML5的兼容性,那么我会说历史API将是最好的选择很好;一个快速的谷歌搜索应该为您提供好的示例代码

基本上,HTML5的历史API规范定义了通过编程将页面状态推送到浏览器历史堆栈中的方法。这样,每次使用AJAX更新视图时,您都会将该状态推送到浏览器历史中。然后,您可以重新启用浏览器的后台功能,它应该按照用户的意愿工作


在这些场景中,我倾向于认为“浏览器后退”功能是一个很好理解和期望的范例,因此禁用可能会让您的用户感到困惑。不过,这只是我的想法。

您可以向您展示代码吗?将您最后的
partialview
存储在
localStorage
中,单击“上一步”按钮只需从
localStorage
获取值并更改
partialview
因此,感谢Katstevens为我提供了正确的途径。我将尝试一下。如果您也能参考与此相关的任何内容或样品,我们将不胜感激。再次感谢!)
    //load view without postback
    $.ajax({
        type: "POST",
        url: actionUrl,
        data: {},
        cache: false,
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            if (data.status == "Denied") {
                Error.accessDenied(data.message);
            } else {
                containerElem.html('');
                containerElem.html(data.viewMarkup);
            }
        },
        error: function (xhr, ajaxOptions, thrownError) {
            console(thrownError);
            _showErrorMessage();
        }
    });
},