Pergunta

Eu tenho uma série de controles em uma página ASP. Alguns estão dentro de um UpdatePanel e alguns não são.

Se eu colocar uma marca XML em uma das caixas de texto (por exemplo, "<foo>"), então todos os controles dentro do UpdatePanel não funcionam. Assim que as tags são removidas, está tudo bem.

Meu botão 'enviar' está no UpdatePanel eo ponto de interrupção na btnSubmit_Click só é atingido quando não há marcas nas caixas de texto.

Eu sou um longo tempo C # dev mas muito novo para ASP.NET de modo pode estar faltando algo óbvio ... isso simplesmente não é o comportamento que eu esperava.

Foi útil?

Solução

Se você estava a tomar o UpdatePanel fora da página, você acharia que a postagem estava causando um erro porque .NET pensa que "" é um pouco potencialmente perigosa de dados para aceitar no servidor. Consulte esta questão em StackOverflow. Você não vê o erro porque o HTML página de erro está sendo devolvido a chamada ajax do UpdatePanel em vez de direto para você navegador, e não o UpdatePanel não sabe o que fazer com ele.

Você pode desativar a verificação, adicionando

ValidateRequest="false"

à <@Page ...> diretiva na parte superior do seu arquivo aspx. Ou você pode modificar o web.config para obter o mesmo efeito em toda a sua aplicação web.

Outras dicas

Você não pode colocar marcação em um textarea. Você deve HTML-escapar quaisquer caracteres de marcação dentro textarea assim como você deve com qualquer outro elemento.

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

Embora na prática navegadores normalmente irá trabalhar para fora o que você quer dizer e mostrar quaisquer caracteres < como está, ainda é HTML inválido e XML não-bem-formado (presumivelmente esta é também a raiz do seu problema no ASP.NET, embora sem código específico é difícil dizer).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top