视图状态无效/Base-64 字符串中的字符无效

本文关键字:无效 字符 Base-64 视图状态 字符串 | 更新日期: 2024-11-06 01:18:46

我已经阅读了多个类似的帖子。例如:

  • base-64 字符串中的字符无效 - 视图状态?
  • Base-64 字符串中的字符无效

但没有一个为我提供解决方案。我知道出了什么问题,我将尝试遍历我的代码。

这每天只发生在少数用户身上,并且他们都使用 IE。火狐浏览器可以正常工作。

我有一个aspx页面,其中包含我的网上商店的注册表。当用户单击"继续"时,我会执行验证数据的回发。如果一切有效,我运行以下代码:

public void Proceed(Object sender, EventArgs e)
{
   if (IsValid)
   {
      SaveCustomerInfo();
      ScriptManager.RegisterStartupScript(
          this, this.GetType(),
          "RedirectPaymentGateway",
          "RedirectPaymentGateway('" + paymentData + "');", true);
   }
}

此脚本将用户重定向到支付网关,如下所示:

function RedirectPaymentGateway(paymentData) {
    $(document).ready(function() {
        try {
            var div = document.createElement('div');
            div.innerHTML = paymentData;                
            var formDataObj = jQuery.parseJSON(div.firstChild.nodeValue);
            var form = "<form>FORM CONSTRUCTION</form>";
            $('#pnlPaymentGateway').html(form);
            $('#pnlPaymentGateway').submit();
        }
        catch (e) {
            alert(e);
        }            
    });
}

paymentData是 .net 对象的 JSON 序列化。

我猜这段代码破坏了与视图状态相关的内容,但我无法弄清楚如何或为什么。有什么建议吗?

视图状态无效/Base-64 字符串中的字符无效

我刚刚遇到了用户的问题。它只发生在IE上,而不是发生在所有用户身上。Firefox和Chrome工作正常。

要解决此问题,请打开 IE 并执行以下操作:

  1. 单击"工具"。(您可能需要先通过右键单击顶部栏来启用菜单栏。
  2. 点击互联网选项。
  3. 单击高级选项卡。
  4. 单击重置。
  5. 选中该框以删除个人设置。
  6. 确认直到返回IE。
  7. 重新启动浏览器。

问题将得到解决。