用户单击MVC5中的浏览器后退按钮时检索数据时遇到问题

问题描述

用户提交数据并检索包含超链接的html数据时,我正在页面上工作。 现在,当用户单击链接时,他将被导航到另一个页面,并且当用户单击浏览器的后退按钮时,我想显示先前显示的html数据。 为了实现这一点,我尝试将值存储在会话中,并在用户单击浏览器按钮时检索它。

但是我遇到了问题

  1. 我试图捕获浏览器的后退按钮并显示会话存储的变量,但我不确定为什么未触发该事件。

    $(window).on('hashchange',function(){ $(“#spanId”)。html(“ test”); });

  2. 存储在会话变量中的HTML数据无法正确显示,就像“

    $(document).ready(function () {
    
             $("#spanId").html("@Session["Data"]");
    
              $("#btnSubmit").click(function () {
                   var data = {
                         "Date": $.datepicker.formatDate("mm-dd-yy",DateVal),"Type": $('#type').val(),}
    
                     $.ajax({
                         type: 'POST',dataType: "json",contentType: "application/json; charset=utf-8",data: JSON.stringify(data),url: '@Url.Action("GetReportdata","Reports")',success: function (result) {
                             $("#spanId").html(content);
                           },error: function (xhr,ajaxOptions,thrownError) {
    
                         }
                     });
             });
    
     });
    
     Please let me kNow if there is any other way to handle this and help me resolves this issue.
    

解决方法

在服务器端可能有另一种解决方法,但这应该可行。

$(document).ready(function () {
     $("#spanId").html(decodeHtml("@Session["Data"]"));
     $("#btnSubmit").click(function () {
           var data = {
                "Date": $.datepicker.formatDate("mm-dd-yy",DateVal),"Type": $('#type').val(),}
            $.ajax({
                 type: 'POST',dataType: "json",contentType: "application/json; charset=utf-8",data: JSON.stringify(data),url: '@Url.Action("GetReportdata","Reports")',success: function (result) {
                     $("#spanId").html(decodeHtml(content));
                 },error: function (xhr,ajaxOptions,thrownError) {
                 }
             });
     });

 });

function decodeHtml(encodedHtml) {
    return encodedHtml.replace(/&/g,'&')
        .replace(/&lt;/g,'<').replace(/&gt;/g,'>');
}
,

我发现了一个处理浏览器后退按钮的事件

  if (window.performance && window.performance.navigation.type == 

    window.performance.navigation.TYPE_BACK_FORWARD) {
    
         $("#spanId").html("@Session["Data"]");
    }

这对我有用