Я как-то ответил на свой вопрос, я думаю, но я хочу убедиться, что правильно понимаю. Первоначально я думал, что когда пользователь предоставил значения в форме, то при обратной передаче значения были отправлены как часть ViewState, потому что TextBox.Text является частью представления. Теперь я обнаружил, что введенные пользователем значения фактически не применяются к элементам управления до тех пор, пока не произойдет событие OnLoad. Это смутило меня, потому что я думал, что viewstate был загружен в элементы управления до OnLoad (или при вызове Controls.Add()). Я несколько раз пересматриваю документацию на странице и управляю жизненными циклами, и теперь я понимаю, что был другой шаг для обработки данных обратной передачи (этот шаг не появлялся во многих документах :(Viewstate vs Postback
1) Таким образом, данные обратной передачи, значения типа пользователя в полях, применяются после события OnLoad, а данные Viewstate применяются непосредственно перед событием OnLoad?
2) Таким образом, по существу, все это означает, что при обратной передаче сервер получает два значения для свойства TextBox.Text, то есть в Viewstate, которое похоже на «старое» значение из предыдущего запроса и новое значение, предоставленное пользователем в форме?
3) Использует ли .net framework данные обратной передачи, такие же, как Viewstate, тем, что находит соответствующий элемент управления через свой ID-свойство? Это важно, потому что я создаю элементы управления динамически, и у меня могут быть даже формы, которые меняют структуру сверхурочных и должны думать о том, как я обрабатываю идентификаторы. До сих пор я не устанавливал свойство ID, и все работает нормально, но в будущем это может быть сложнее.
4) Имеет ли данные в viewstate когда-либо изменяться вообще на стороне клиента? Или представляет собой представление, идентичное тому, что было отправлено сервером в предыдущем запросе (если не было никакого вмешательства)? Ранее мое впечатление заключалось в том, что сервер закодировал все свойства управления в представлении, а на стороне клиента, когда пользователь представил форму, поле viewstate было декодировано, изменено, закодировано и отправлено на сервер с изменениями. Я предположил, что есть куча javascript, который делает все это для меня. Теперь я думаю, что все было неправильно. Вместо этого кажется, что Viewstate никогда не изменяется на стороне клиента, и все изменения клиента находятся в данных обратной передачи, так что следующий запрос сервер загружает viewstate, загружает обратную передачу и предоставляет новое обновленное viewstate в следующем ответе?
я получил только через около 10% от «Bonus чтива» ссылка и до сих пор это действительно большая информация. Еще раз спасибо! – AaronLS
Я прочитал статью Truly Understanding Viewstate около 5 раз и всегда возвращаюсь к ней, когда я чувствую смущение. :) – Greg