Каковы преимущества использования скрытого поля в 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 - ваш лучший выбор для удобства чтения.