asp.net - “Sys”未定义 - 渲染的标记缺少对 ScriptResource.axd 的引用

标签 asp.net vb.net iis asp.net-ajax scriptmanager

是的,著名的“'Sys'未定义”Microsoft JS 问题。

我已经进行了大约 4 个小时的挖掘并尝试了我能找到的所有建议,所以在您立即称其为重复项之前,请先让我出去。

最终,这个问题this one 完全相同,但接受的答案与我的情况无关,并且OP不再是活跃成员。


背景

此应用程序大约有一百页。它们中的每一个最终都继承自同一个基类。该基类覆盖 Init方法并动态添加 ScriptManager以它为第一Form控制。

在其中的一页上,我遇到了我链接的帖子中描述的问题。我提到接受的答案是相关的。原因如下:

  1. 我不会做任何Sys.来电
  2. 我的页面上没有任何支持 AJAX 的控件
  3. 我的页面上没有任何 JavaScript
  4. 我的 web.config 是准确的,它包含正确的处理程序条目
  5. 此问题在 IIS 6.0 和 IIS 7+ 上均可重现
  6. 如果我通过 <asp:ScriptManager /> 显式向页面添加 ScriptManager ,ScriptResource.axd 包含仍然没有渲染到输出页面
  7. 我尝试过清除浏览器历史记录、临时 ASP.NET 文件、重新启动等,但行为没有改变
  8. 旧版本的应用程序在我们的 UAT 环境中可以正常运行;从那时起,基页代码和 web.config 文件都没有更改

我完全被难住了。这是一个 ASP.NET 3.5 网站项目,运行在带有 IIS 6.0(Prod 和 UAT)的 Win Server 2003 上。我的开发环境是Win7,IIS 7.5。两种环境中的行为相同。

问题

有人有什么想法吗?我开始认为这是 ASP.NET 3.5.1 框架中的一个错误...

最佳答案

我刚刚遇到了类似的问题,似乎刚刚解决了。

如果您要覆盖页面上除 PageLoad 之外的任何其他页面生命周期事件,请确保触发该事件的基本版本。例如。我正在使用 OnPreRenderComplete

protected override void OnPreRenderComplete(EventArgs e)
{
    base.OnPreRenderComplete(e); //ADDING THIS LINE FIXED THE PROBLEM

    //Add THEAD etc to Gridview
    if (gvQueue.Rows.Count > 0)
    {
            gvQueue.HeaderRow.TableSection = TableRowSection.TableHeader;
    }
}

关于asp.net - “Sys”未定义 - 渲染的标记缺少对 ScriptResource.axd 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11486673/

相关文章:

asp.net-mvc-3 - 当请求不是来自本地主机时,为什么IIS不返回我的错误结果?

asp.net - 在IIS服务器上部署不依赖nodejs的asp.net React模板

c# - 在后面的代码中从 DataTable 设置 javascript 数组

c# - PageMethod 无法调用 C# 函数

asp.net - 相当于 VB.NET 中的 SQL IN

vb.net - 对象属性在不应该的情况下被更改? (Vb.net)

c# - 如何使用 ASP.NET MVC 更改 ModelState 中的值,使其有效?

asp.net - 如何使用resxresourcewriter写所有三个值?

c++ - C++ 中传递的参数不完整

azure - 绑定(bind) : The edit bindings button (. ..) 在 azure devops 中不可见