2014-12-04 11 views
5

Próbuję renderować adres z mojego modelu. Łańcuch zawiera podziały wierszy, które zastępuję znacznikiem przerwania. Mimo, że renderuje się na stronie jako ciąg zamiast jako HTML. Jak mogę zmusić mój ciąg do renderowania jako HTML?Renderowanie ciąg znaków jako HTML w C# Razor

Próba:

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

Wynik na stronie:

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

powinien być wyświetlany jako:

Address Top 
Street Name 
City 
PostCode 
+1

należy podzielić ciąg. –

+0

@ DanielA.White - Przepraszam, kolego, pierwszego dnia przy użyciu C#. Czy powinienem go podzielić i zapisać jako różne zmienne i renderować je na różnych liniach? – Fizzix

+1

Użyj '@ Html.Raw (Model.MyData.Address.Replace (" \ r \ n ","
"))' – dom

Odpowiedz

9

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

+4

Uważaj, używając tego, jak gdyby adres użytkownika był "1234 ", będziesz mieć problemy z Xss. –

+0

@JohnKoerner - Nie martw się, wszystko wyczyścimy i sformatujemy adres przed jego zapisaniem w bazie danych. Dzięki za heads-up. – Fizzix

0

Korzystanie cs s zachować białą przestrzeń

Html

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

CSS

#addressLine { 
    white-space: pre; 
} 
+0

@downvoter - poważnie? –

Powiązane problemy