Когда клиент обновляет свой браузер, он повторно отправляет последний полный запрос страницы, выданный клиентом (который может быть GET или POST ). Он никогда не отправляет запросы AJAX, например, созданные триггерами событий панели обновления («частичные обратные вызовы страниц»).
Тот факт, что Page.IsPostback
равен false
, когда вы обновляете страницу, означает, что ваш исходный запрос - GET, поэтому вот что, вероятно, происходит:
1) Во время первоначального запроса клиент не отправляет данные формы на сервер - следовательно, нет скрытого поля, содержащего данные о состоянии просмотра ( Общие сведения о состоянии представления ASP.NET довольно подробные, но их можно прочитать Вы хотите действительно понять, что происходит). При обработке этого запроса ASP.NET может отправить клиенту некоторое состояние просмотра, но исходный запрос - это просто URL.
2) Когда пользователь нажимает кнопку внутри UpdatePanel, он запускает частичную обратную передачу, во время которой MyField
устанавливается на 1. UpdatePanel изменяет состояние просмотра клиента, чтобы отразить новое значение.
На этом этапе, если пользователь отправляет запрос POST обычными средствами, такими как нажатие кнопки, состояние просмотра будет содержать обновленную информацию.
Если пользователь нажимает «Обновить», он повторно отправляет исходный запрос, начиная с шага 1, без данных формы и, следовательно, без состояния просмотра.