web-dev-qa-db-fra.com

Rendre une chaîne en HTML dans C # Razor

J'essaie de rendre une adresse à partir de mon modèle. La chaîne contient des sauts de ligne que je remplace par une balise break. Bien que, il est rendu sur la page sous forme de chaîne plutôt que HTML. Comment puis-je forcer ma chaîne à rendre au format HTML à la place?

Tentative:

<span id="addressLine">
    @Model.MyData.Address.Replace("\r\n", "<br />");
</span>

Résultat en page:

Address Top<br />Street Name<br />City<br />PostCode

Devrait être affiché comme:

Address Top
Street Name
City
PostCode
17
Fizzix

Utilisez @Html.Raw(Model.MyData.Address.Replace("\r\n", "<br />"))

23
dom

Utilisation

@(new HtmlString(@Model.MyData.Address))

Voir cet article: Rendu HTML en HTML dans Razor

6
cnom

Utilisez css pour préserver l'espace blanc

Html

<div id="addressLine">
  @Model.MyData.Address;
</div>

Css

#addressLine {
  white-space: pre;
}
2
user3559349

Vous devez utiliser la propriété CSS whitespace au lieu de celle-ci . Pour plus de détails, accédez à http://www.w3schools.com/cssref/pr_text_white-space.asp

Il vous aide également à éviter les scripts intersites ( http://en.wikipedia.org/wiki/Cross-site_scripting )

1
Thiago