2010-01-10 4 views
5

J'ai un contrôle de vue détaillée asp.net sur une page. J'ai remarqué qu'il affiche toujours le texte brut de mon champ de base de données, il n'interprète pas le html dans le texte - donc il affiche < b> mytext </b> au lieu de seulement mytext en gras.asp.net: Le contrôle DetailsView n'interprète pas html

est-il de toute façon à obtenir le contrôle d'interpréter le code HTML dans les données retourné

Cordialement l'état fondu

Répondre

8

Pouvez-vous poster le code de votre contrôle? Les bases sont que vous devez définir la propriété HtmlEncode sur false. Cela est dû à une différence dans la façon dont les étiquettes et les boîtes de texte gèrent l'encodage, quelque chose qui vise à vous protéger des scripts malveillants que quelqu'un a pu entrer dans ces champs.

Si vous l'avez configuré pour générer automatiquement les champs (par défaut), vous devrez plutôt remplacer BoundField s ou TemplateField par s et définir le champ HtmlEncode Property erroné.

Vous pouvez voir une code sample of the individual fields in MSDN, voici un exemple simplifié:

<asp:DetailsView runat="server" AutoGenerateRows="False"> 
    <Fields> 
    <asp:BoundField DataField="ProductName" HeaderText="Product" /> 
    <asp:BoundField DataField="CategoryName" HeaderText="Category" /> 
    <asp:BoundField DataField="HTMLField" HeaderText="HTML" HtmlEncode="false" /> 
    </Fields> 
</asp:DetailsView> 
+0

HtmlEncode = "false" a fait l'affaire, merci beaucoup pour cette astuce. – Melt

Questions connexes