首页 > 解决方案 > ASP.NET Core 3.1单击浏览器后退按钮时如何强制重新加载视图

问题描述

 [ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)]
 public IActionResult Index()
 { ...}

是否有一种简单的方法可以在访问索引视图时强制执行以避免加载缓存数据。我有一个最终页面(视图),当它完成时,如果用户单击返回浏览器按钮,我想强制执行操作视图。使用 asp.net Core 3.1。测试时。当用户单击返回浏览器按钮时,操作索引永远不会被执行。

标签: asp.net-corebrowser-cacheasp.net-core-3.1

解决方案


您可以尝试检查PerformanceNavigationTiming.type,如果类型是back_forward,则表示该页面是通过导航到历史记录来访问的。这是一个演示:

js:

$(function () {
            var perfEntries = performance.getEntriesByType("navigation");
            if (perfEntries[0].type == "back_forward") {
                location.reload(true);
            }
        })

结果(我点击返回浏览器按钮,你可以看到索引操作被调用了两次,我正在使用 chrome): 在此处输入图像描述


推荐阅读