【问题标题】:LinkButtons in IE10 not performing posting backIE10 中的 LinkBut​​tons 不执行回发
【发布时间】:2012-09-09 02:51:11
【问题描述】:

我正在尝试向 ASP.NET 4 页面添加一个简单的 LinkButton,但它没有在 IE10 中调用 postback。代码如下所示。

HTML:

<form id="form1" runat="server">
<div>
  <asp:LinkButton ID="LinkButton1" runat="server"
    OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
  <br />
  <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>    

C#:

protected void Page_Load(object sender, EventArgs e) { }

protected void LinkButton1_Click(object sender, EventArgs e)
{
  Label1.Text = DateTime.Now.ToString();
}

如您所见,它只是一个普通页面。但是,自从升级到 Win8 和 IE10 后,我无法让 LinkButton 调用该方法。这适用于 Firefox。

任何想法我需要做什么?

【问题讨论】:

  • 1) 检查 IE 10 中的脚本错误,2) 尝试以 IE 8 或 9(F12 开发人员工具)运行。
  • 我在 IE10 状态栏和开发者工具中看不到任何脚本错误,将浏览器更改为 IE7/8/9 不会影响链接按钮回发。我还尝试将用户代理字符串更改为 IE8/9,看看是否有帮助。

标签: asp.net internet-explorer-10


【解决方案1】:

您有补丁,该补丁在 Internet Explorer 和 Mozilla Firefox 的浏览器定义文件中引入了更新的定义。浏览器定义文件存储在以下文件夹中,具体取决于安装的 Microsoft Framework le.NET 版本:

对于 32 位版本的 Framework 4.0.NET

%WinDir%\Microsoft.NET\Framework\v4.0.30319\CONFIG\Browsers

对于 64 位版本的 Framework 4.0.NET

%WinDir%\Microsoft.NET\Framework64\v4.0.30319\CONFIG\Browsers

在此处下载补丁:http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2600088&kbln=fr

链接:http://support.microsoft.com/kb/2600088

【讨论】:

  • 谢谢,我会试一试的。看起来图像验证服务已关闭,所以我目前无法下载热修复,而且它看起来只能到 Win7。我正在运行 Win8 RTM
  • 当我尝试运行该修补程序时,我得到:KB2600088 不适用,或被您计算机上的其他情况阻止。所以我猜它与 Windows 8 不兼容。
【解决方案2】:

这是由于 IE10 中的安全设置造成的。由于某种原因,我的本地 Intranet 设置比公共网站更严格。所以我不能点击超链接,但我可以点击提交表单的按钮。

【讨论】:

    【解决方案3】:

    这是一个服务器修补/更新问题。 ASP.NET 没有发出正确的 JavaScript 供您的浏览器运行。它不知道比 IE9 更新的 IE 版本。

    请参阅 Scott Hanselman 的帖子:

    ASP.NET fails to detect IE10 causing _doPostBack is undefined JavaScript error or maintain FF5 scrollbar position

    Scott 在 2011 年的这篇文章中指出,应通过 Windows 更新分发修复程序。确保您的服务器使用来自 Windows 更新的 .NET Framework 服务更新是最新的。如果没有,you can download the patchread more details on the Microsoft KB

    此修复程序将更新那些允许 ASP.NET 发出正确标记和 JavaScript 的 .browser 文件。

    %WinDir%\Microsoft.NET\Framework(64?)\v4.0.30319\CONFIG\Browsers\ie.browser

    这将包含这样的项目:

      <!-- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) -->
      <browser id="IE10Plus" parentID="IE6Plus">
        <identification>
          <capability name="majorversion" match="\d{2,}" />
        </identification>
        <capabilities>
          <capability name="jscriptversion" value="6.0" />
        </capabilities>
      </browser>
    

    【讨论】:

    • Scott Hanselman 提到的一个小补充是,如果由于某种原因您无权访问系统文件,您始终可以使用 WEB_BROWSER asp 文件夹将更新的定义添加到网站本身。这可以在 SITE-ONLY FIXES 部分中找到
    • @mrd3650 你是对的,但它是“App_Browsers”文件夹,而不是“web_browser”
    • @Mark Cooper 为您的关注干杯
    【解决方案4】:

    【讨论】:

    • 不要给出exe的直接链接,链接到解释hotfix的页面
    • 解释正是本期的主题
    • 但是 exe 可以撤回或更新,而 KB 链接应该保留。此外,他可能不想要该特定版本的文件。
    • Zhaph 我已经添加了一个解释,但我认为它帮助了一些人这是我们需要关心的一点。
    【解决方案5】:

    您应该安装 .Net Framework 4.5,它对我有用。

    【讨论】:

    • Dot Net/IE 中的一个如此巨大的错误,以至于它的两个产品相互不兼容?如果我的主机只支持 4.0 怎么办?
    【解决方案6】:

    您需要为此安装修补程序。 Scott Hanselman 在他的博客上对此进行了解释。

    http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 2019-07-11
      • 2010-11-04
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多