Что это за состояние просмотра в любом случае и как уменьшить его размер
В веб-формах Asp.net каждый элемент управления сохраняет свое состояние, поскольку протокол HTTP не имеет состояния, а страницы веб-форм Asp.net обходят это путем сохранения состояния каждого элемента управления в этой кодированной строке Base 64. Это единственный способ для платформы Asp.net узнать, изменилось ли значение какого-либо элемента управления или нет. Но ... Это автоматически означает, что статические элементы управления, которые не возвращаются на сервер POST (например, метка), не должны сохранять свое состояние. Вы всегда можете установить их EnableViewState="false"
.
К сожалению, это не может быть установлено без каких-либо других изменений кода в других элементах управления, которые возвращаются обратно (каждый элемент управления на стороне сервера, который визуализирует входные данные в HTML). Это в основном означает, что установка EnableViewState="false"
на уровне страницы (в пределах директивы @Page
) будет иметь последствия, которые будут выглядеть как потерянные значения элементами управления, элементами управления, не инициирующими определенные события и т. Д.
Таким образом, чем больше серверных элементов управления вы получите, тем больше они будут получать (без отключения некоторых элементов управления).
Но я бы не стал беспокоиться, если его размер равен 10 КБ. Это будет идти вперед и назад довольно быстро и безболезненно. У вас будут проблемы, когда он станет намного больше. Однажды я работал над проектом, и у нас возникла проблема с определенной страницей (созданной менее опытным разработчиком), в которой состояние просмотра выросло более чем на 1 МБ. Представь это. Какое замедление!
Как полностью отключить его на уровне страницы
Когда вы отключаете состояние просмотра на уровне страницы, вы должны знать, что определенные элементы управления, которые были загружены (или, точнее, привязаны к данным) в событиях вашей страницы, должны будут перезагружаться каждый раз, когда ваша страница возвращается на страницу POST. сервер. В противном случае они будут отображаться как пустые, когда ваша страница вернется к клиенту.