Ошибки 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)


arrow_upward
1
arrow_downward

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

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

arrow_upward
0
arrow_downward

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

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

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

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

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

person Andrew Cowenhoven    schedule 27.05.2011