скрытое поле против viewstate - PullRequest
12 голосов
/ 23 января 2011

В чем разница при использовании

  • Скрытое поле против состояния просмотра?
  • Когда использовать каждый из них?
  • Какой из них более безопасный?
  • Что лучше по производительности?
  • Какие есть альтернативы?

Ответы [ 3 ]

8 голосов
/ 23 января 2011

ViewState хранится в скрытом поле и содержит информацию обо всей странице.Это также может быть зашифровано.Поскольку состояние представления всегда отправляется в codebehind при выполнении обратной передачи, это очень удобно, так как вы всегда получаете значения.Недостатком является то, что он может стать действительно большим, если вы начнете помещать в него много информации, и производительность может начать страдать.Например, в некоторых AJAX-запросах вы хотите отправить только небольшую информацию на сервер, и если вы использовали UpdatePanels, будет отправлен весь ViewState, и он будет содержать информацию, которая не нужна.

3 голосов
/ 23 января 2011

Скрытое поле можно просмотреть в исходном HTML-коде страницы, тогда как ViewState, по меньшей мере, запутан и, в зависимости от версии .net, может быть зашифрован в различной степени.

asp.net viewstate encryption

Скрытое поле будет лучше работать, но не обеспечит безопасность, и если с данными публикации можно будет манипулировать, намного проще изменить ViewState.

Переменные сеансахорошая альтернатива этому.

0 голосов
/ 23 января 2011

ViewState внутренне использует скрытое поле. Он управляется ASP.NET Engine и по умолчанию шифруется.

С другой стороны, со скрытым контролем поля вы можете управлять тем, что в нем хранится. По умолчанию он не зашифрован.

Производительность мудрая, оба одинаковы. Но я чувствую, что ViewState более безопасно. ASP.NET поддерживает свой хэш, чтобы предотвратить / идентифицировать любое вмешательство в него на стороне клиента.

Вы также можете использовать сеанс для хранения данных.

...