【问题标题】:Asp.net: can not debug this problem: Sys.ArgumentNullException: Value cannot be null. Parameter name: elementsAsp.net:无法调试此问题:Sys.ArgumentNullException:值不能为空。参数名称:元素
【发布时间】:2011-06-15 03:25:15
【问题描述】:

这很奇怪,我有这个问题:

Sys.ArgumentNullException:值不能为空。参数名称: 元素。

这个问题只发生在 IE 中。

详情:

  • ScriptResource.axd = 行:4868
  • 代码:0 - 字符:12

网页错误详情

用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1; 三叉戟/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;媒体中心PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; AskTbBT4/5.8.0.12304) 时间戳:2011 年 1 月 25 日星期二 11:24:42 UTC

留言:

Sys.ArgumentNullException:值不能为空。参数名称: 元素 行:4868 字符:12 代码:0 URI: http://asdfsdf/ScriptResource.axd?d=7NwOnZl2VMauVPybpy_0vvP2zsCf0g8YK4dd3SkNMq873HwvoDhnE7rPvjFZwFLM0&t=11e661nl.js

【问题讨论】:

  • 你能展示一些涉及参数元素的代码吗?该错误表明您的元素变量为空或未定义。显示代码行你是如何获取元素的?
  • 您是否在使用任何 AJAX 控件? Ajax 控制工具包?第三方 ASP.NET AJAX 控件?
  • 我也有同样的问题。不可否认,它是 UpdatePanel 和 ajaxcontroltoolkit 的某种组合。

标签: asp.net


【解决方案1】:

将 ScriptMode 更改为 Release 为我解决了这个问题。

<asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release"></asp:ScriptManager>

【讨论】:

    【解决方案2】:

    我也有同样的问题...

    无可否认,它是 UpdatePanel 和 AjaxControlToolkit 的结合...

    编辑:

    没看到这个问题有多久了。也许它不再相关......但就我而言,我现在在两个场合遇到了这个问题并找到了两种不同的解决方案。第一个场合涉及更新面板、一个modalpopupextender 和一个validationsummary 控件。问题是validationsummary 没有在生成的javascript 末尾输出分号。解决方案是创建您自己的迷你控件,它继承自 ValidationSummary 并在预渲染时执行此操作:

        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
    
            ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), this.ClientID, ";", true);
        }
    

    只需在 javascript 中添加一个分号。这样就解决了。

    我不确定我现在是否再次面临同样的问题,但我的问题页面再次包含更新面板、ajaxcontrol 工具包控件 (Modalpopupextender) 和验证摘要。因为我忘记了我之前的解决方案,所以我尝试了另一个在 google 上找到的解决方案;设置

    ScriptMode="Release"
    

    在我的母版页中的脚本管理器上。这行得通。不确定我是否应该对此感到满意...似乎调试版本吐出的 javascript 在与其他一些 asp.net 控件结合使用时不起作用。

    【讨论】:

    • 我试过了,这个错误已修复,并且在 IE8 的 srciptresource.axd 中显示“未定义为空或不是对象”的新错误
    • 谢谢@UmaN 你拯救了我的一天。但我怀疑发布模式正在取消浏览器调试的能力。但是,干草,我的应用程序现在可以工作了。所以我把这个留待以后调查。
    【解决方案3】:

    如果在 ModalPopupExtender 的 CancelControlID 中指定的控件上设置 Visible=False,也会出现此错误。如果您有需要隐藏 CancelControlID 的代码路径,请确保在这种情况下设置 CancelControlID = ""。这就是我遇到的问题...

    【讨论】:

    • 我在同一个控件上,但我在 cancelcontrolid 和实际取消控件上有不同的名称。
    • 谢谢。问题是错误消息没有指定有关问题的任何详细信息。
    【解决方案4】:

    如果您在页面上使用 ReportViewer,这可能会有所帮助。

    在 web.config 中设置 compilation debug="false"

    【讨论】:

      【解决方案5】:

      我在自定义服务器控件中创建了一个更新面板,之后没有使用 RenderControl()

      protected override void RenderContents(HtmlTextWriter writer)
      {
        myUpdatePanel.RenderControl(writer);
      }
      

      【讨论】:

        猜你喜欢
        • 2019-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-17
        • 1970-01-01
        • 2017-07-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多