2010-08-10 3 views
3

Existe-t-il un moyen d'interdire le asp:Literal de sortir du code HTML?Disallow asp: Littéral à partir de la sortie HTML

Si je saisis le texte <b>Hello world</b> je veux le montrer comme ça, et non en gras.

Si possible, je ne veux pas l'étendre, car je devrais changer l'ensemble du projet.

+0

* Le changement de l'ensemble du projet * est une recherche simple et remplace en VS. –

+1

'asp: Literal', par définition, affiche le texte littéral qui lui est donné. Y at-il une raison pour laquelle vous ne pouvez pas utiliser un 'asp: Label', qui échappe automatiquement au code HTML dans le texte que vous lui donnez? – StriplingWarrior

+0

'' La seule différence ici est que Label génère un 'span'. Il n'a pas échappé HTML – BrunoLM

Répondre

0

Je pense que vous avez besoin celui-ci: HttpUtility.HtmlEncode

il remplacera < avec &lt; etc. qui peuvent être envoyés au client en toute sécurité.

+0

Ceci est la meilleure réponse, et si vous avez besoin de l'utiliser dans plus de quelques endroits, votre meilleur pari est d'étendre le contrôle littéral pour le soutenir. Un peu de travail à l'avant pour rendre chaque chose plus lisible et plus facile à travailler avec plus tard. – Kendrick

+1

En fait, 'HttpUtility.HtmlEncode' serait la bonne méthode à utiliser. –

1

une façon est de .... Créer un LiteralControl personnalisé dérivé de ASP.net contrôle littéral et remplacer la méthode de rendu (écrivain HtmlTextWriter) pour supprimer toutes les balises.

0

Je suis en retard, mais la réponse est Literal.Mode à Encode.

comme ceci:

<asp:Literal runat="server" ID="myLiteralControl" Mode="Encode" /> 

Malheureusement, vous devrez changer votre ensemble du projet, que vous l'extension du contrôle Literal ou non.

Voici le Literal.Mode documentation.

Questions connexes