XML-теги в asp: TextBox предотвращает работу других элементов управления? - PullRequest
0 голосов
/ 22 октября 2009

У меня есть ряд элементов управления на странице ASP. Некоторые находятся внутри UpdatePanel, а некоторые нет.

Если я поместил тег XML в одно из текстовых полей (например, «<foo>»), тогда все элементы управления в UpdatePanel не будут работать. Как только метки удалены, все в порядке.

Моя кнопка «Отправить» находится в UpdatePanel, и точка останова на btnSubmit_Click срабатывает, только когда в текстовых полях нет тегов.

Я давний разработчик C #, но довольно плохо знаком с ASP.NET, поэтому, возможно, упускаю что-то очевидное ... это не то поведение, которого я ожидаю.

Ответы [ 2 ]

1 голос
/ 22 октября 2009

Если вы удалите UpdatePanel со страницы, вы обнаружите, что обратная передача вызвала ошибку, потому что .NET считает, что «» - это потенциально опасный бит данных для приема на сервере. См. этот вопрос о StackOverflow. Вы не видите ошибку, потому что HTML-страница ошибки возвращается к вызову ajax UpdatePanel, а не прямо в ваш браузер, а UpdatePanel не знает, что с ним делать.

Вы можете отключить проверку, добавив

ValidateRequest="false"

в директиву <@Page ...> в верхней части файла aspx. Или вы можете изменить web.config, чтобы получить тот же эффект прямо в вашем веб-приложении.

0 голосов
/ 22 октября 2009

Вы не можете поместить разметку в текстовую область. Вы должны HTML-экранировать любые символы разметки внутри textarea так же, как и с любым другим элементом.

<textarea>&lt;foo> &amp; &lt;bar></textarea>

Хотя на практике браузеры обычно понимают, что вы имеете в виду, и отображают любые символы < как есть, они по-прежнему являются недопустимым HTML и неправильно сформированным XML (предположительно, это также является причиной вашей проблемы в ASP.NET хотя без конкретного кода это сложно сказать).

...