Как ASP.NET MVC удаляет ViewState из приложения? - PullRequest
1 голос
/ 05 октября 2009

Я ищу источник ASP.NET MVC и не нашел, где ViewState удален из приложения.

(ViewState не просто отключен , он удаляется из всех страниц приложения)

Спасибо!

Обновление:

Возможно ли удалить скрытое поле Viewstate?

Ответы [ 3 ]

5 голосов
/ 05 октября 2009

Это просто; это не удалено. Вы все еще можете установить и прочитать ViewState. Только не ожидайте, что он будет содержать что-либо из предыдущего запроса. На самом деле это удобно, потому что это означает, что некоторые серверные элементы управления ASP.NET, которые хранят значения своих свойств в ViewState, можно заставить работать в ASP.NET MVC. Пока не важно сохранять ViewState от одного запроса к другому, эти элементы управления по-прежнему работают нормально.

Удаление постоянства ViewState из одного запроса в другой, конечно, делает его практически бесполезным. Вот почему люди обычно говорят, что ASP.NET MVC «не имеет ViewState». Это не технически точно; ViewState действительно существует; он просто не существует в форме, полезной для чего-либо.

4 голосов
/ 05 октября 2009

MVC не использует состояние представления - оно полностью не имеет состояния (как и должно быть в Интернете).

Возможно, вам придется немного изменить свое мышление и подумать о том, что ваши приложения работают по модели запрос-ответ (которая всегда есть, но стандартная asp.net использует viewstate, чтобы попытаться «обмануть» разработчика, если хотите, думать или кодировать, как если бы у страницы было состояние.)

1 голос
/ 05 октября 2009

ViewState не является частью жизненного цикла страницы ASP.NET MVC. ViewState доступен только в приложениях ASP.NET WebForms.

Это также означает, что вы не можете использовать большинство элементов управления ASP.NET WebForms, использующих ViewState

...