ASP.net проверки состояния изменений состояния и JQquery AJAX - PullRequest
0 голосов
/ 22 января 2010

Хорошо, проблема в следующем: я использую AJAX в jQuery для выполнения вызовов за сценой на странице (при таких событиях, как голосование за элемент) и изменения содержимого в соответствующем элементе. Проблема возникает, когда я смешиваю AJAX с AJAX в ASP.net, точнее, когда я пытаюсь выполнить обратную передачу ПОСЛЕ того, как я использовал jQuery на странице для выполнения действия. Состояние просмотра страницы изменяется, и проверка не проходит (что на самом деле кажется нормальным).

Мой вопрос: могу ли я как-то отключить проверку, чтобы я мог выполнять обратные передачи в сочетании с состоянием просмотра измененной страницы? Пока что поиск того, как его отключить, не дал результатов.

Более практичный пример - на странице комментариев, где я разрешаю голосовать за комментарии и публиковать новые комментарии. Таким образом, если пользователь голосует за комментарий и затем публикует свой собственный, содержимое страницы изменяется, и, следовательно, проверка не проходит. Кроме того, я попытался разместить форму комментария на панели обновлений, чтобы предотвратить публикацию всей страницы, но она по-прежнему не работает.

Конечно, я мог бы использовать альтернативный маршрут и иметь другую страницу для обработки события и просто вызвать ее через AJAX в jQuery, но мне было интересно, смогу ли я сделать это, комбинируя ASP.net и jQuery.

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

1 Ответ

1 голос
/ 22 января 2010

Если вы хотите отключить проверку состояния просмотра, вы можете установить ее на уровне страницы или конфигурации с помощью Page.EnableViewStateMac = false.

http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableviewstatemac.aspx

Это не всегда хорошая идея, потому что здесь есть функция проверки, которая защищает от взлома состояния представления, которое вы отключите ...

Если у вас возникают проблемы с недопустимым состоянием представления из-за вызовов jQuery ajax, один из вариантов - рассмотреть возможность использования элементов управления Ajax, таких как UpdatePanel. Вы можете обернуть некоторые элементы управления и пометить UpdatePanel как условный, чтобы обеспечить небольшое круговое путешествие. Это не повлияет на viewstate и позволит вам продолжать использовать валидацию viewstate и ajax одновременно.

Могут быть способы использовать jQuery ajax-вызовы и не мешать проверке состояния представления. Другие могут выделить этот подход.

...