2011-01-25 2 views
11

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

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

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

Детали:

  • ScriptResource.axd = Line: 4868
  • Код: 0 - Char: 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) Timestamp: Tue, 25 Jan 2011 11:24:42 UTC

Сообщение: Sys.ArgumentNullException: Значение не может быть null. Имя параметров: элементы Line: 4868 Char: 12 Код: 0 URI : http://asdfsdf/ScriptResource.axd?d=7NwOnZl2VMauVPybpy_0vvP2zsCf0g8YK4dd3SkNMq873HwvoDhnE7rPvjFZwFLM0&t=11e661nl.js

Заранее спасибо!

+0

Можете ли вы показать код с элементами параметров? Ошибка говорит, что переменная ваших элементов имеет значение null или undefined. Покажите строку кода, как вы получаете элементы? –

+0

Используете ли вы какие-либо элементы управления AJAX? Инструментарий Ajax Control? Сторонние элементы управления ASP.NET AJAX? –

+0

У меня такая же проблема. Несомненно, это комбинация UpdatePanel и ajaxcontroltoolkit. – UmaN

ответ

15

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

Это, несомненно, сочетание 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.

+0

Я пробовал это, эта ошибка исправлена, и новая ошибка, показывающая, что «undefined is null или not a object» в srciptresource.axd в IE8 – Syed

+1

Спасибо @UmaN Вы спасли мой день. Но я подозреваю, что режим выпуска снимает возможность отладки браузера. Но, сено, мое приложение теперь работает. Поэтому я оставляю это для дальнейшего изучения. –

+0

это разрешило мою проблему. – greg

26

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

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

+0

Ты настоящий герой! –

2

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

1

СЛУЧИЛОСЬ мне, где я создал панель обновления в элементе управления пользовательского сервера и не использовать RenderControl() после

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

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

compilation debug="false" в web.config.

Смежные вопросы