JQuery POST не меняет переменную IsPostback - PullRequest
3 голосов
/ 02 июня 2009

При использовании jQuery для отправки данных обратно на сервер я получаю странное поведение.

Если я включу __VIEWSTATE и __EVENTVALIDATION в мои сериализованные данные формы, переменная страницы IsPostback будет иметь значение true, если я исключу эти два, IsPostback будет иметь значение false.

Мне достаточно легко включить эти две переменные, но кто-нибудь знает, что происходит за кулисами?

Ответы [ 3 ]

4 голосов
/ 02 июня 2009

Одна из вещей, которые просматривают состояние состояния и отслеживание события, заключается в том, произошла или нет обратная передача. Учитывая основанный на событиях жизненный цикл страницы ASP.NET, нет другого способа отследить, произошла ли обратная передача, кроме простого сохранения значения где-либо.

Другими словами, вы можете вручную проверять обратную передачу, копаясь в объекте viewstate и находя логическое значение обратной передачи и изменяя его на true. Возможно, это не совсем то, что описано, но это немного лучше подчеркивает то, что происходит внутри состояния просмотра.

2 голосов
/ 02 июня 2009

IsPostBack () немного беспорядочно, но да, он проверяет __VIEWSTATE и __EVENTVALIDATION и ничего больше. Что он, безусловно, не делает, так это проверяет, является ли HTTP-глагол POST или GET, что большинство людей предполагает (вы можете увидеть это, если настроите простую страницу и поместите поля viewstate и eventvalidation (если есть) в запрос строка затем проверьте IsPostBack ()

Однако почему вы хотите проверить? На самом деле, это вступает в действие только при отправке полного представления формы, если вы частично публикуете сообщение, вы склонны делать это в веб-сервисе, где IsPostBack не важен.

0 голосов
/ 02 июня 2009

Если вы хотите создать «обратную передачу» с помощью jquery, вы должны включить __VIEWSTATE и __EVENTVALIDATION. Это две важные порции данных, которые веб-формы ASP.NET должны иметь для правильного распространения полной обратной передачи. Если вы хотите только выполнить вызов службы, вам не нужно ни одно из этих полей, но вы потеряете возможность публиковать на странице все преимущества конвейера событий WebForms.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...