Хорошо, у вас здесь есть пара вещей. Во-первых, вы, вероятно, не должны помещать элемент формы в страницы контента. Типичная ASP.NET форма находится в главной странице. Возможно, вы делаете больше работы для себя, но .. Я понимаю, почему вы можете это сделать. Таким образом, ваша основная проблема заключается в том, что при наличии содержимого на главной странице (поведение по умолчанию) поля идентификаторов будут иметь префикс, чтобы они не конфликтовали с идентификаторами содержимого в другом заполнителе.
Если вы просматриваете источник, «TextBox1» будет выглядеть примерно так:
Ваша проверка ищет TextBox1, а не MainContent_TextBox1.
У вас есть несколько вариантов. Важно понимать последствия каждого (я оставлю это для вас, чтобы исследовать).
Вариант 1:
В верхней части вашей главной страницы (в ее объявлении) вы можете поместить это в ваш ClientIDMode = "Static". ASP.NET не будет касаться ваших идентификаторов, если они конфликтуют, это ваша ответственность.
Вариант 2:
Меня это не волнует, но я использовал это время от времени. Получить идентификатор клиента от asp.net
проверить [обязательно, равно [<% = TextBox1.ClientID%>]]
Вариант 3:
Там может быть другая возможность вставить селектор jquery, который находит идентификатор как TextBox1
надеюсь, это поможет