【问题标题】:ASP.NET Javascript '__doPostBack' is undefinedASP.NET Javascript '__doPostBack' 未定义
【发布时间】:2016-06-26 09:38:17
【问题描述】:
function my_page_start_onload() {
    if (__doPostBack) { //  Error: '__doPostBack' is undefined
        ...
    }
}
window.onload = my_page_start_onload();

我尝试了很多方法,但都没有成功。

  1. 控制面板 -> Windows 更新 -> 是最新的 -> 仍然错误
  2. 浏览器定义已更新(aspnet_regiis.exe -i 和 iisreset) -> 查看http://forum.jdp.tw/thread-1552-1-1.html -> 将浏览器定义添加到 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Browsers\ie.browsers -> 运行 C:\Windows\Microsoft.NET\Framework64\v2。 0.50727\aspnet_regbrowsers.exe -i -> RUN iisreset -> 还是报错

  3. 尝试安装hotfix,但出现错误The update is not applicable to your computer

  4. 尝试安装.NET Framework,但出现错误The update is not applicable to your computer

  5. VS2012 与 .NET 4.5 以空白页运行此功能,仍然错误

  6. IE5-11的所有版本,依然报错

备注:

  1. Request.Browser.Browser 返回InternetExplorer
  2. Request.Browser.Version 返回11.0

计算机环境

  1. Windows 7 64 位
  2. VS2008 与 .NET 3.5
  3. IIS 7.5'应用程序池使用.NET v2.0版本
  4. IE11.

非常感谢您的帮助!

【问题讨论】:

  • 您是否在这里搜索过__doPostBack undefined - 并阅读此stackoverflow.com/questions/15273618/…
  • 是的,我试过了,我认为问题与浏览器定义无关。因为 Request.Browser.Browser 和 Request.Browser.Version 返回 IE11。并且还使用带有 .NET4.5 的 VS2012 来运行 window.onload = my_page_start_onload();有空白页,但仍然错误。

标签: visual-studio-2008 .net-3.5 iis-7.5 internet-explorer-11 dopostback


【解决方案1】:

如果您的页面包含一些需要回发但通常不会导致回发的控件,.NET 将自动为您生成回发功能。考虑一个提交按钮 - 它会导致 postack,但不需要额外的 js 代码,因为它旨在导致 postback。但是,链接按钮(呈现为锚点)或下拉列表之类的控件通常不会导致回发,这就是 asp.net 将为它们生成 __postback 函数的原因。因此,为了强制 asp.net 生成 _postback 函数,您可以向页面添加一些虚拟控件,或者您可以制作

标签 runat=server 或者如果您想在每个页面中包含 __postback 函数,无论它们限制什么控件,您都可以在您的母版页 Page_Load 事件中执行此函数:
ClientScript.GetPostBackEventReference(this, "");

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 2013-02-22
    • 2011-09-15
    • 2013-11-23
    • 2013-12-16
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多