У меня есть несколько элементов управления «ASP: TextBox» на форме (около 20).
Когда форма загружается, текстовые поля заполняются из базы данных.
Пользователь может изменить заполненные значения, и когда они отправляют форму, я беру значения, отправленные на сервер, и условно сохраняю их (определяется некоторой бизнес-логикой).
Все текстовые поля, кроме 1, работают по назначению.
Нечетное поле после обратной передачи не содержит обновленное значение, введенное пользователем в поле.
При отладке приложения ясно, что myTextBox.Text
отражает старое, предварительно заполненное значение, а не новое, предоставленное пользователем значение.
Каждое другое поле правильно отображает их соответствующие пользовательские значения.
Я нашел обходной путь.
Мое решение состояло в том, чтобы в основном извлечь значение текстового поля из объекта Request.Form
: Request.Form[myTextBox.UniqueID]
, который содержит предоставленное пользователем значение.
Что здесь может происходить?
Как я уже упоминал, другие текстовые поля прекрасно воспринимают предоставленные пользователем значения, и с этим конкретным проблемным текстовым полем не связано никакой логики - оно просто берет значение и сохраняет его.
Основное различие между этим текстовым полем и остальным заключается в том, что это многострочное поле (для ввода заметок), которое, как мне кажется, отображается как HTML-тег «textarea» вместо тега «input» в ASP.NET.