2010-10-10 6 views
0

L'utilisation d'une application .net MVC2 génère une chaîne de code HTML copiée/collée par mes utilisateurs sur l'application Web d'un tiers. En d'autres termes, je ne cherche pas à rendre le HTML - je veux que la chaîne soit affichée mot pour mot.Renvoyer le code HTML via JSON

J'ai besoin de comprendre quelles propriétés JSON/jQuery doivent être explicitement définies pour que la chaîne de mon application apparaisse en tant que pure ascii - les codes HTML sont affichés inchangés, non échappés, non-rendus.

tx

+0

Vous avez mentionné jquery donc je me demande si vous chargez cette chaîne HTML via ajax? Si c'est le cas, il n'y a pas de propriété spéciale, mais suivez la première réponse ici pour rendre la chaîne. http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery – Ryan

Répondre

2

JSON lui-même est juste le texte (ASCII, UTF-8, ou autre). HTML incorporé en lui n'a absolument aucune signification particulière. La seule raison pour laquelle le navigateur rendrait ce texte au format HTML est de l'injecter sur la page en tant que telle, en utilisant éventuellement la fonction .html().

Si vous voulez l'injecter en tant que texte, essayez la fonction .text() ou, si vous parlez d'un textarea ou d'un autre élément de formulaire, .val().

Vous n'avez pas besoin d'apporter de modifications au code ASP ou JSON; c'est purement une question de ce que vous faites avec le contenu une fois que vous l'avez.

0

Générez simplement la chaîne de caractères html en utilisant des caractères spéciaux html. Autrement dit, tournez tous les moins de & lt; etc. Je ne sais pas asp, mais je suis sûr qu'il a un équivalent htmlspecialchars() (php). Cela n'a rien à voir avec JSON ou jQuery. Une fois que vous avez la chaîne correctement mise à jour, alors vous n'avez rien à craindre.

Si vous obtenez le texte en html pur avec Javascript (codé en dur, Ajax, etc.) vous pouvez simplement mettre à jour le conteneur avec $ ("# container"). Text (html); Cela le transformera en html lisible au lieu d'interpréter le html lui-même (en faisant essentiellement ce que fait htmlspecialchars())!

1

Vous avez juste besoin de prendre votre code et l'exécuter par HtmlEncode

<%= Server.HtmlEncode(YourHtmlHere) %> 
Questions connexes