2015-07-03 88 views
0

正如我們所預期的,文本和/或標記呈現爲按原樣輸出,沒有任何html編碼。Html在剃刀視圖中對文本進行編碼

對於下文中,標記的純文本必須是HTML編碼(我們不關心代碼輸出在這裏。)

@{ var theVar = "xyz"; } 
some text & other text >>@theVar 

因此,HTML輸出。

some text & other text >>xx

所以,當我們要編寫需要有一些靜態文本HTML編碼,我們必須使用結構,如;

@{ var theVar = "xyz"; } 
@("some text & other text >>")@theVar 

在輸出中獲取以下html;

some text & other text >>xyz

並且爲了清楚在瀏覽器觀察時

一些文字&其他文本>> XYZ

那麼,有沒有這樣做的一個簡單的方法?有些HTML的快捷方式可以對文本進行編碼,而不是對每個文本使用@(「...」),這些文本在出現多個文本時會開始顯得很糟糕。 最佳做法是什麼?你怎麼做到這一點?

+2

你嘗試@ Html.Raw() –

+0

@Ji_in_coding:*「返回非HTML編碼的標記。」*這聽起來與OP的tr相反要做。 –

+0

@RichardDeeming我的不好。並沒有付出太多的關注,但默認情況下,mvc剃鬚刀會自動對所有字符串進行html編碼;將字符串分配給ViewBag變量,並直接在cshtml中使用它。編輯,我認爲他已經組裝了一切控制器。我在視圖外準備所有內容 –

回答

0

因此,當我們爲文檔指定utf-8編碼時,這不是一個大問題。除非特殊文字(<,>,&,「,」)用於文檔的utf-8編碼,否則不需要html編碼字符作爲實體參考。 即使使用&本身對於寬鬆的瀏覽器也不是錯誤的,是ambigous情況要考慮像伏&安培因此,這將是更好的HTML編碼所有的這些特殊字符

檢查W3聯盟篇「何時使用逃逸」部分; http://www.w3.org/International/questions/qa-escapes#use