Asp.net: не удается отладить эту проблему: Sys.ArgumentNullException: значение не может быть нулевым. Имя параметра: элементы

Это странно, что у меня есть такая проблема:

Sys.ArgumentNullException: значение не может быть нулевым. Имя параметра: элементы.

Эта проблема возникает только в IE.

Подробности:

  • ScriptResource.axd = Строка: 4868
  • Код: 0 - код: 12

Сведения об ошибке веб-страницы

Пользовательский агент: Mozilla/4.0 (совместимый; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729; Media Center PC 6.0; InfoPath. 2;.NET4.0C;.NET4.0E; AskTbBT4/5.8.0.12304) Отметка времени: вторник, 25 января 2011 г. 11:24:42 UTC

Сообщение:

Sys.ArgumentNullException: значение не может быть нулевым. Имя параметра: элементы Строка: 4868 Символ: 12 Код: 0 URI: http://asdfsdf/ScriptResource.axd? D = 7NwOnZl2VMauVPybpy_0vvP2zsCf0g8YK4dd3SkNMq873HwvoDhnE7rPvjFZwFle660

Ответ 1

Изменение ScriptMode для выпуска исправлено для меня.

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

Ответ 2

У меня та же проблема...

Несомненно, это комбинация UpdatePanel и AjaxControlToolkit...

Edit:

Не видел, сколько лет этот вопрос. Может быть, это уже не актуально... Но в моем случае я столкнулся с этой проблемой сейчас в двух случаях и нашел два разных решения. Первое событие включало панели обновления, modalpopupextender и контрольный контроль. Проблема была в том, что 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) и резюме validaiton. Поскольку я забыл свое предыдущее решение, я попробовал еще один, который я нашел в google; установка

ScriptMode="Release"

на моем сценаристе на моей главной странице. Это сработало. Не уверен, должен ли я быть счастлив или нет с этим... Похоже, что версия отладки выплевывает javascript, который не работает в сочетании с некоторыми другими элементами управления asp.net.

Ответ 3

Вы также получите эту ошибку, если вы установите Visible = False на элемент управления, указанный в CancelControlID для ModalPopupExtender. Если у вас есть путь к коду, где вам нужно скрыть CancelControlID, просто убедитесь, что в этой ситуации задано CancelControlID = "". Это была проблема, с которой я столкнулся...

Ответ 4

В случае использования ReportViewer на странице это может помочь.

Установите compilation debug="false" в web.config.

Ответ 5

Вспомните, где я создал панель обновления в пользовательском контроле сервера и не использовал RenderControl() впоследствии

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