Question

J'ai une série de contrôles sur une page ASP. Certains se trouvent dans un UpdatePanel et d'autres non.

Si je mets une balise XML dans l'une des zones de texte (par exemple, " <foo> "), tous les contrôles de UpdatePanel ne fonctionnent pas. Dès que les tags sont supprimés, tout va bien.

Mon bouton "soumettre" se trouve dans UpdatePanel et le point d'arrêt de btnSubmit_Click n'est atteint que s'il n'y a pas de balises dans les zones de texte.

Je suis un développeur C # de longue date, mais assez nouveau dans ASP.NET, il se peut qu'il manque quelque chose d'évident ... ce n'est tout simplement pas le comportement que j'attendais.

Était-ce utile?

La solution

Si vous retiriez UpdatePanel de la page, vous constateriez que la publication était à l'origine d'une erreur, car .NET pense que & "; < foo > &". ; est un bit de données potentiellement dangereux à accepter sur le serveur. Consultez la cette question sur StackOverflow. L'erreur ne s'affiche pas, car le code HTML de la page d'erreur est renvoyé à l'appel ajax de UpdatePanel plutôt que directement à votre navigateur, et UpdatePanel ne sait pas quoi en faire.

Vous pouvez désactiver la vérification en ajoutant

ValidateRequest="false"

à la < @page ... > directive en haut de votre fichier aspx. Ou vous pouvez modifier le paramètre web.config pour obtenir le même effet sur votre application Web.

Autres conseils

Vous ne pouvez pas insérer de balises dans une zone de texte. Vous devez échapper au format HTML tout caractère de balise figurant dans textarea, comme vous le feriez pour tout autre élément.

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

Bien que dans la pratique, les navigateurs comprennent généralement ce que vous voulez dire et affichent les < caractères tels quels, le code HTML et le code XML non correctement formé sont toujours invalides (cela est probablement aussi la racine de votre problème dans ASP.NET , bien que sans code spécifique, il est difficile de dire).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top