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