Каково использование свойства Visible в случае HiddenField? - PullRequest
3 голосов
/ 18 декабря 2010

Свойство Visible, насколько я понимаю, помогает включать или отключать видимость элемента управления.

Но как его использовать в случае элемента управления HiddenField в ASP.NET?

Ответы [ 3 ]

5 голосов
/ 18 декабря 2010

Свойство Visible присутствует даже на объекте HiddenField из-за наследования .

В документации указано, чтоHiddenField класс наследуется от базового Control класса , который определяет свойство Visible.Наследование означает, что все классы, которые наследуют от базового класса, автоматически получают или получают все методы, предоставляемые базовым классом.В этом случае HiddenField выбирает свойство Visible своего базового Control класса, даже несмотря на очевидную бесполезность, на которую вы указываете в вопросе.вещи "(хотя я не буду оспаривать правдивость этого утверждения), это потому, что объектно-ориентированный дизайн делает невозможным удаление методов из производных классов, которые унаследованы от базовых классов.

5 голосов
/ 07 марта 2013

Свойство Visible в HiddenField работает так же, как и в других элементах управления.Если элемент управления HiddenField имеет свойство Visible, установленное на false, то элемент управления не отображается на странице .Обычно HiddenField отображается как элемент <input type= "hidden"/>.Но если он невидимый, его данные хранятся в состоянии просмотра страницы.

Причина, по которой HiddenField был представлен в .Net 2.0, была альтернативой

  • состоянию просмотра
  • состояние сеанса
  • куки

как места для хранения такого рода скрытой информации о состоянии, когда эти места либо недоступны, либо нежелательны.Установка значения Visible в false просто заставляет его снова использовать viewstate вместо рендеринга <input type= "hidden"/>.Таким образом, это немного противоречит цели, но это хорошо понятный контейнер для небольшого количества данных, которые пользователь не должен видеть.

Независимо от того, отображается ли он как элемент в документе (Visible = true) или как закодированное представление состояния (Visible = false), это не имеет большого значения.

Этоважно знать, что значение HiddenField фактически отправляется вместе со страницей, даже если свойство visible имеет значение false, и его не следует использовать для конфиденциальной информации.

ASP.NET HiddenField Visible Property

ASP.NET HiddenField на wiki.ASP.NET

0 голосов
/ 18 декабря 2010

Вероятно, потому что было труднее сделать так, чтобы его там не было, чем оставить там.

Во многих языках есть глупости. Как и унарный + оператор в C и C ++

...