2013-07-23 50 views
0

我已經寫了下面的代碼來接受HTML標記的數據在我的模型如何解碼textareafor中的html代碼?

[AllowHtml] 
[Required(ErrorMessage = "Post Content Required")] 
public string PostContent { get; set; } 

它接受它,但是當我把備份數據將顯示帶有HTML標籤的數據等:

<h2><strong>&lt;p&gt;&amp;lt;p&amp;gt;[...] store and many other 
&amp;amp;hellip;&amp;lt;/p&amp;gt;&lt;/p&gt;</strong></h2> 

我有試圖編寫@HttpUtility.HtmlDecode(item.PageContent),但它不會刪除標籤。

+0

您是試圖去除HTML標籤還是試圖顯示包含標籤的原始文本?你想要產生什麼源? – SLaks

+0

Ehm,事實上,這段文字以'

'開始並以'

'結尾,解碼後的文本也以'

'開始,以'

'結尾,並不意味着HtmlDecode沒有做任何事情! –

+0

但我只想簡單的文字沒有

....

所以我該怎麼做? –

回答

0

使用@ Html.Raw輸出原始HTML代碼。但是,這可能會使您的網站遭受腳本攻擊,請謹慎使用。

+0

我試過@ Html.Raw,但它顯示格式化的文本,因爲我在編輯器中格式化了它,但仍顯示標籤。 –

0

由於您已經允許字段中的html,我只是將ascii轉換爲html,然後再將其發送到視圖。像

public string Decode(string value) 
    { 
     return (value) 
      .Replace("&quot;", "\"") 
      .Replace("&lt;", "<") 
      .Replace("&gt;", ">"); 
    } 

    public string Encode(string value) 
    { 
     return (value) 
      .Replace("\"", "&quot;") 
      .Replace("'", "''") 
      .Replace("<", "&lt;") 
      .Replace(">", "&gt;"); 
    } 

然後你可以再次編碼它保存到數據庫之前。希望這可以幫助