2014-12-04 132 views
5

我正在嘗試從我的模型渲染地址。該字符串包含換行符,並用換行符替換。儘管它在頁面上作爲字符串而不是HTML呈現。我如何強制我的字符串呈現爲HTML而不是?在C#中將字符串呈現爲HTML剃刀

嘗試:

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

頁結果:

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

應顯示爲:

Address Top 
Street Name 
City 
PostCode 
+1

你應該拆分字符串。 – 2014-12-04 01:30:24

+0

@ DanielA.White - 對不起,第一天使用C#。所以我應該分割它並將其保存爲不同的變量並將它們呈現在不同的行上? – Fizzix 2014-12-04 01:32:23

+1

使用'@ Html.Raw(Model.MyData.Address.Replace(「\ r \ n」,「
」))' – dom 2014-12-04 01:36:44

回答

9

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

+4

請注意,如果用戶的地址是'1234 lane',您將遇到xss問題 – 2014-12-04 01:48:24

+0

@JohnKoerner - 不用擔心,我們會在保存之前清理所有內容並格式化地址在數據庫中。儘管感謝您的領導。 – Fizzix 2014-12-04 02:08:29

0

使用CS s到保留空白

的Html

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

的CSS

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

@downvoter - 認真嗎? – 2016-05-24 09:54:39