html 当用户点击MVC5中的浏览器后退按钮时,面临检索数据的问题

r7knjye2  于 2022-11-20  发布在  其他
关注(0)|答案(2)|浏览(111)

当用户提交数据并检索包含超链接的html数据时,我正在处理该页。现在,当用户单击链接时,他将被导航到另一页,当用户单击浏览器的“后退”按钮时,我希望显示先前显示的html数据。为了实现这一点,我尝试将值存储在会话中,并在用户单击浏览器的“后退”按钮时检索该值。
但我现在面临的问题
1.我尝试捕获浏览器后退按钮并显示会话存储变量,但我不确定为什么没有触发此操作。
函数(){ $(“#spanId”).html(“测试”);});
1.存储在会话变量中的Html数据显示不正确,例如“〈”显示为“&lt”,并且所有数据显示为字符串而不是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.
d5vmydt9

d5vmydt91#

在服务器端可能有另一种方法来解决这个问题,但这应该可以。

$(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,'>');
}
31moq8wy

31moq8wy2#

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

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

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

这可用于重新填充数据。

相关问题