Afficher la chaîne en html dans asp.net mvc view

J’ai un contrôleur qui génère une chaîne contenant des balises html. J’ai essayé d’utiliser l’aide de HTML pour encoder / décoder pour l’afficher correctement, mais cela ne fonctionne pas.

ssortingng str= "seeker has applied to Job floated by you.
";

Sur mes vues,

 @Html.Encode(str) 

Vous êtes proche vous voulez utiliser @Html.Raw(str)

@Html.Encode prend des chaînes et s’assure que tous les caractères spéciaux sont traités correctement. Ceux-ci incluent des caractères comme des espaces.

Vous devriez utiliser IHtmlSsortingng place:

 IHtmlSsortingng str = new HtmlSsortingng("seeker has applied to Job floated by you."); 

Chaque fois que vous avez des propriétés de modèle ou des variables devant contenir du code HTML, j’estime que c’est généralement une meilleure pratique. Tout d’abord, c’est un peu plus propre. Par exemple:

 @Html.Raw(str) 

Par rapport à:

 @str 

En outre, je pense aussi que c’est un peu plus sûr que d’utiliser @Html.Raw() , car votre contrôleur se @Html.Raw() de savoir si vos données sont HTML. Dans un environnement où vous avez des développeurs front-end et back-end, vos développeurs principaux sont plus en phase avec les données pouvant contenir des valeurs HTML, conservant ainsi cette préoccupation dans le back-end (contrôleur).

J’essaie généralement d’éviter d’utiliser Html.Raw() chaque fois que possible.

Une autre chose à noter, c’est que je ne suis pas sûr de savoir où vous atsortingbuez str , mais quelques choses qui me préoccupent sur la façon dont vous pouvez l’implémenter.

Tout d’abord, cela doit être fait dans un contrôleur, indépendamment de votre solution ( IHtmlSsortingng ou Html.Raw ). Vous devriez éviter toute logique de ce type à votre avis, car elle n’y appartient pas vraiment.

De plus, vous devriez utiliser votre ViewModel pour obtenir des valeurs dans votre vue (et, encore une fois, idéalement, utiliser IHtmlSsortingng comme type de propriété). Voir quelque chose comme @Html.Encode(str) est un peu inquiétant, sauf si vous le faisiez simplement pour simplifier votre exemple.

vous pouvez utiliser @Html.Raw(str)

Voir MSDN pour plus

Renvoie un balisage qui n’est pas codé en HTML.

Cette méthode encapsule le balisage HTML à l’aide de la classe IHtmlSsortingng, qui rend le code HTML non codé.

J’ai eu un problème similaire avec les champs de saisie HTML dans MVC. La page Web indiquait uniquement le premier mot-clé du champ. Exemple: champ de saisie: “Le renard brun rapide” Valeur affichée: “Le”

La résolution était de mettre la variable entre guillemets dans la déclaration de valeur comme suit: