【问题标题】:Share point 2013 SCRIPT5009: '__doPostBack' is undefinedSharepoint 2013 SCRIPT5009:“__doPostBack”未定义
【发布时间】:2013-12-16 21:09:50
【问题描述】:

我有一个带有 Web 内容管理的 Sharepoint 2013 农场。在自定义网站中,我在母版页中使用了一些 asp.net 自定义控件。这是母版页中引用的简单自定义控件代码之一。

带有用于注销的回发事件的 LinkBut​​ton 控件,并将此控件添加到母版页。

 protected void logoutLink_Click(object sender, EventArgs e)
        {
            var strLogoutUrl = ConfigurationManager.AppSettings["LogoutUrl"];
            HttpContext.Current.Response.Redirect(strLogoutUrl);    
        }

一旦页面被渲染,支持在单击注销按钮时触发的 __doPostBack() 事件不会触发。这是我在浏览器的浏览器JS控制台中看到的错误信息。

SCRIPT5009:“__doPostBack”未定义

查看 html 源代码时,我没有找到对 webResource.axd 的引用?带有__doPostBack() 方法的定义。

<a href="javascript:__doPostBack('ctl00$ctl00$ModalLoginPanel$ctl12','')" onclick="s_objectID=&quot;javascript:__doPostBack('ctl00$ctl00$ModalLoginPanel$ctl12','')_1&quot;;return this.s_oc?this.s_oc(e):true"> (Logout) </a>

我在哪里看到另一个对 webresource.axd 的引用?带有与ASP相关的js函数。我们在母版页中使用的菜单控件。

这里的问题是,由于某种原因,包含回发相关 javascript 引用的 webresource.axd 没有被添加到生成的 Html 源中。

在过去的 4 天里一直坚持这一点。感谢任何帮助解决这个问题。

PS:OOB Sharepoint 控件的回发事件也不会触发。

【问题讨论】:

标签: asp.net sharepoint postback


【解决方案1】:

查看此处获取修复:

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

基本上,这在 ASP.NET 4.5 中已修复(不适用于 SharePoint 2013),但也有适用于所有版本的 .NET 框架的旧补丁。

【讨论】:

  • 在我的情况下,这不是 IE10,11 特定问题。我可以在 Chrome 和 FF 中重现这一点。列表中列出的所有补丁都不适用于我的环境,因为它在 Server12 上运行。
  • 我在 SP 网站上面临的问题并非特定于 IE10。我可以在所有浏览器版本 [Ie8、Ie9、Chrome、FF] 中重现它。 Hanselman 推荐的 KB 2600088 以外的更多内容不适用于 Server 12 操作系统。重申一下,这可能与 Share point 2013 有关。它只是跳过添加处理回发所需的 webResource.axd 引用。它仍然允许通过不同的 webresource.axd 引用来引用与 ASP.net Menu 相关的 JS 脚本。
  • 您是如何打包和部署自定义母版页和用户控件的?
  • 是的。自定义母版页和控件作为功能添加到共享点项目并通过 wsp 进行部署。
猜你喜欢
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
  • 2016-06-26
  • 2011-09-06
  • 1970-01-01
相关资源
最近更新 更多