Скрытое поле ASP.NET против невидимого текстового поля

Каковы преимущества использования скрытого поля в ASP.NET, когда мы можем использовать другой невидимый элемент, такой как ярлык или текстовое поле?

Ответ 1

Скрытое поле генерирует на странице элемент <input type="hidden" />, который не может быть замечен, но клиент может получить элемент, установить данные и передать сервер:

document.getElementById('<%= SomeHiddenField.ClientID %>').value = "data_pass_to_server";

после обратной передачи вы можете получить значение:

var clientData = SomeHiddenField.Value; // "data_pass_to_server"

Если вы используете невидимое текстовое поле (<asp:TextBox Visible="False" />), в html файле нет элемента.

Ответ 2

В любом случае, для текстового поля не используйте .visible="false" используйте

yourTextBox.Style.Add("display", "none")

или

yourTextBox.Style.Add("visibility", "hidden")

Ответ 3

Скрытое поле отображает в качестве входного типа = "скрытый" в получившемся HTML. Будучи входным, значение во входном файле отправляется на сервер при обратной передаче, в то время как это не относится к метке. В зависимости от того, хотите ли вы, чтобы это значение передавалось на сервер, вы должны использовать ввод или метку. Если вы не хотите, чтобы значение было отправлено, метка - правильное решение, а скрытое поле - неверно.

Я не уверен, что вы подразумеваете под невидимым текстовым полем, но если вы пытаетесь сделать его невидимым с помощью CSS, имейте в виду, что тип ввода имеет смысловое значение для поисковых систем, ботов и т.д. Также в какой-то момент ваш HTML может быть без CSS или с другим CSS, и текстовое поле станет видимым для пользователя. В противном случае нет различий между скрытым полем и невидимым текстовым полем, так как оба они отображают входы.

Ответ 4

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