Ошибки Javascript после обновления до .NET 4.0

Я унаследовал работающее веб-приложение VB.NET 2.0, в котором есть несколько пользовательских элементов управления с GridViews внутри панелей обновления. После запуска мастера обновления VS 2010 приложение отлично работает в отладчике, за исключением нескольких представлений Gridview. В них обновление и удаление работы, но добавление нового элемента вызывает следующую ошибку javascript при нажатии кнопки «Сохранить» (вызов DoPostBackWithOptions):

Microsoft jscript runtime error 
Sys.WebForms.PageRequestManagerServerErrorException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

Моя теория заключается в том, что код в порядке (я его не трогал) и что это вызвано какой-то проблемой конфигурации. Я просмотрел SO и в других местах, подправил свою веб-конфигурацию и обновил сборку инструментария Ajax. Я ничего не получил, пройдя через javascript ScriptResource.axd, выдающий ошибку. Какие-либо предложения?

Обновить

Приложение отлично работает, если я обновлю его до .NET 3.5 с помощью мастера VS 2008. Однако, если я затем обновлю его до 4.0 с VS 2010, проблема снова всплывет.


person Andrew Cowenhoven    schedule 25.05.2011    source источник


Ответы (2)


Вы пытались установить controlRenderingCompatibilityVersion? Процесс обновления должен был включить его для вас, но это может быть причиной вашей душевной боли. Он находится в теге <pages... вашего файла web.config...

person ShaneBlake    schedule 26.05.2011
comment
Да хорошее предложение. Я пытался установить это на 3.5 и на 4.0, но в любом случае нет никакой разницы. - person Andrew Cowenhoven; 26.05.2011

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

Я понял, что проект прекрасно обновляется до .NET 3.5, но переход на 4.0 ломает его. Я не уверен, ломает ли его фреймворк или мастер обновления.

Итак, успешный путь для меня был:

  1. Откройте в VS 2008 и запустите мастер обновления для обновления до 3.5.
  2. Снова откройте проект в VS 2010 и запустите мастер обновления, но оставьте его на платформе 3.5.

На данный момент проект работает нормально, и я могу использовать VS 2010 для внесения своих обновлений.

person Andrew Cowenhoven    schedule 27.05.2011