2014-12-04 11 views
5

Sto tentando di eseguire il rendering di un indirizzo dal mio modello. La stringa contiene interruzioni di riga che sto sostituendo con un tag di interruzione. Sebbene, è il rendering sulla pagina come una stringa, invece che come HTML. Come posso forzare la mia stringa a visualizzare come HTML?Rendere una stringa come HTML in C# Razor

Tentativo:

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

Risultato a pagina:

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

Dovrebbe essere visualizzato come:

Address Top 
Street Name 
City 
PostCode 
+1

si dovrebbe dividere la stringa. –

+0

@ DanielA.White - Scusa amico, primo giorno con C#. Quindi dovrei dividerlo e salvarlo come variabili diverse e renderle su linee diverse? – Fizzix

+1

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

risposta

9

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

+4

Fai attenzione, come se l'indirizzo dell'utente fosse '1234 lane', avrai problemi xss –

+0

@JohnKoerner - Non preoccuparti, puliamo tutto e formattiamo l'indirizzo prima di salvarlo nel database. Grazie per l'heads up però. – Fizzix

0

Usa cs s per preservare lo spazio bianco

Html

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

Css

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

@downvoter - sul serio? –

Problemi correlati