Запуск ASP.NET без включенного состояния просмотра
-
03-07-2019 - |
Вопрос
Мы собираемся начать пересборку одного из наших проектов ASP.NET, и я хотел бы попробовать разработать его без включенного viestate (отключенного в web.config).
Я знаю о плюсах и минусах состояния просмотра и, вообще говоря, о том, что оно отслеживает по сравнению с состоянием управления, однако мне хотелось бы знать:
В чем принципиальные различия процесса разработки?Т.е. насколько по-другому вы структурируете Page_Load и т. д.?
Есть ли какая-либо функциональность в стандартных элементах управления ASP.NET, которая действительно не будет работать без включения состояния просмотра?
Кроме того, есть ли подробные статьи о различиях рабочего процесса при работе с VS и без него?
Решение
Большинство элементов управления, таких как TextBoxes и DropDownLists, будут прекрасно работать без состояния просмотра.
Мне не известны какие-либо проблемы с процессом разработки, за исключением того, что любые элементы управления или свойства, созданные или измененные с помощью кода, не будут сохраняться без состояния представления, поэтому вам придется воссоздавать/изменять их при обратной передаче.
У меня есть несколько очень больших страниц с большим количеством просмотров.Я провел эксперимент по отключению состояния просмотра для всего проекта и не обнаружил (сначала) заметной потери функциональности.Затем при тестировании возникло несколько небольших проблем, поэтому мы восстановили его.Но наше 300-страничное веб-приложение, вероятно, было на 99% функциональным без состояния просмотра.Проблемы, с которыми мы сталкивались, были сосредоточены вокруг сеток данных — в основном подкачки страниц, динамически создаваемых элементов управления и других вещей, измененных кодом, и поэтому не сохранявшихся без состояния просмотра.
Это очень хорошая статья на Viewstate:
Другие советы
Если вы против состояния просмотра, почему бы не попробовать использовать фреймворк MVC?Возможно, это будет более простая регулировка.
Я отключаю состояние просмотра в своих проектах.Я использую методы разброса/сбора для заполнения и получения значений со страниц aspx в/из моих объектов доступа к данным.Это намного чище и проще, чем использование состояния представления.