ViewState не нужен, потому что нет никаких серверных элементов управления (по крайней мере, не должно быть).
Просто так, как на самом деле.
Серверные элементы управления используют ViewState для отслеживания(в некоторых случаях все) значения свойств, которые необходимо восстановить при повторной публикации страницы.Точно так же это механизм, с помощью которого можно запускать события на стороне сервера, такие как TextChanged
- сервер повторно гидратирует значение asp:TextBox
* Text
, как это было при сохранении ViewState на странице, и сравнивает егок значению, которое отправлено обратно - если оно отличается, событие запускается.Например.
По правде говоря, ViewState - очень умное решение ... Но я должен сказать, что ненавижу его.
В MVC, когда отображается текстовое поле (или, если я долженскажем, ввод HTML type=text
), а затем отправленный обратно, его значение возвращается из запроса.На сервере вы затем воссоздаете данные, необходимые для повторного составления представления.
Я написал довольно много сайтов MVC сейчас - и у меня даже не было необходимости переключать состояние сеанса.
Если вы пришли из Asp.Net Forms, поначалу это может быть просто ошеломляющим (это действительно зависит от того, насколько вам комфортно с HTML в целом), но в конечном итоге это невероятно раскрепощает;и, очевидно, имеет огромное значение для производительности.