Чтение динамически измененного значения HtmlInputHidden в ASP.NET

У меня есть простая страница с полем HtmlInputHidden. Я использую javascript для обновления этого значения, и при отправке страницы я хочу прочитать значение этого поля HtmlInputHidden.

Свойство Value этого поля HtmlInputHidden при обратной передаче имеет значение по умолчанию (значение, которое оно имело при создании страницы, а не значение, отраженное через javascript).

Я также пытался зарегистрировать поле HtmlInputHidden с помощью ScriptManager.RegisterHiddenField(Page, «MyHtmlImputHiddenField», «initialvalue»), но он по-прежнему позволяет мне читать только «начальное значение», хотя я (через javascript) могу проверить, что значение изменилось.


person Per Hornshøj-Schierbeck    schedule 07.10.2008    source источник


Ответы (2)


Поле ввода должно быть внутри формы. Также убедитесь, что ViewState включен.

person leppie    schedule 07.10.2008
comment
Спасибо - я забыл, что только некоторые элементы управления (и никакие HTML-элементы управления) имеют значение true по умолчанию для параметра enableviewstate :) - person Per Hornshøj-Schierbeck; 07.10.2008

В идеале вы хотите использовать элемент управления asp.net HiddenField.

<asp:HiddenField id="myHiddenField" runat="server" />

Затем вы сможете прочитать значение из кода, когда страница обрабатывается.

string value = myHiddenField.Value; // retrieve the value in hidden field

ссылка; Обзор серверного веб-элемента управления HiddenFieled

  • Будьте осторожны с DOM-именем элемента управления (control.ClientID) на стороне клиента (т. е. при доступе из javascript), поскольку оно может меняться в зависимости от того, где на странице вы объявили элемент управления.
person Robert Paulson    schedule 07.10.2008
comment
Хороший пост вы сделали. На самом деле я сделал все вышеперечисленное, но забыл установить enableviewstate=true ;) - person Per Hornshøj-Schierbeck; 07.10.2008
comment
Если подумать, я на самом деле не использовал asp:HiddenField - я использовал HTMLInputHidden, который не является чистым элементом управления asp.net. Я уверен, что ваш пример тоже сработает, поскольку все (на самом деле? asp:controls имеют значение true по умолчанию для enableviewstate) - person Per Hornshøj-Schierbeck; 07.10.2008