Запуск ASP.NET без включенного состояния просмотра

Мы собираемся начать перестройку одного из наших проектов ASP.NET, и я хотел бы попробовать разработать его без включения функции viestate (отключенной в web.config).

Я знаю о достоинствах и недостатках состояния просмотра и, вообще говоря, о том, что он отслеживает по сравнению с состоянием управления, однако я хотел бы знать:

  1. В чем заключаются принципиальные различия в процессе разработки? Т.е. насколько по-другому вы структурируете свой Page_Load и т. Д.?

  2. Есть ли какие-либо функции в стандартных элементах управления ASP.NET, которые действительно не будут работать без включенного состояния просмотра?

Кроме того, есть ли какие-либо подробные статьи о различиях рабочего процесса между работой с VS и без?

Ответов (3)

Решение

Большинство элементов управления, таких как TextBoxes и DropDownLists, будут отлично работать без состояния просмотра.

Я не знаю о каких-либо проблемах процесса разработки, за исключением того, что любые элементы управления или свойства, созданные или измененные с помощью кода, не будут сохраняться без состояния просмотра, поэтому вам придется воссоздать / изменить их при обратной передаче.

У меня есть очень большие страницы с большими окнами просмотра. Я провел эксперимент по отключению состояния просмотра для всего проекта и не обнаружил (сначала) заметной потери функциональности. Затем при тестировании возникли некоторые небольшие проблемы, поэтому мы восстановили его. Но наше 300-страничное веб-приложение, вероятно, работало бы на 99% без состояния просмотра. Проблемы, которые у нас были, были связаны с таблицами данных - в основном разбиение на страницы, динамически создаваемые элементы управления и другие вещи, изменяемые программным кодом, и поэтому не сохранялись без состояния просмотра.

Это очень хорошая статья о Viewstate:

http://msdn.microsoft.com/en-us/library/ms972976.aspx

Я отключаю viewstate в своих проектах. Я использую методы разброса / сбора для заполнения и получения значений со страниц aspx в / из моих объектов доступа к данным. Это намного чище и проще, чем использование viewstate.

Если вы против viewstate - почему бы не попробовать использовать фреймворк MVC? Это может быть более легкая настройка.