关于html解码和编码类型ASP.NET MVC

时间:2014-06-07 11:19:24

标签: asp.net-mvc html-encode

我有一个代码段<h2>SomeText</h2>

当我从ckeditor保存到数据库中时更改为:&amp; lt; h2&amp; gt; SomeText&amp; lt; / h2&amp; gt;

现在,当我单独使用@ WebUtility.HtmlDecode时,它无法正确显示并更改为:&amp; amp; lt; h2&amp; amp; gt; SomeText&amp; amp; lt; / h2&amp; amp; gt;

所以,当我单独使用@ Html.Raw时,它无法正确显示并显示它:&lt;h2&gt;SomeText&lt;/h2&gt;

立即

当我使用@ Html.Raw或@ WebUtility.HtmlDecode时,我无法理解为什么不单独工作? 但是当我使用First @ WebUtility.HtmlDecode和下一个@ Html.Raw时,它的工作正常。 @Html.Raw(WebUtility.HtmlDecode(@Item.Content))

  

&amp; lt; h2&amp; gt; SomeText&amp; lt; / h2&amp; gt; 存储在@ Item.Content

2 个答案:

答案 0 :(得分:1)

如果您使用提交按钮:

<input type="submit" value="save html" onclick="saveIt()" />

这样做:

function saveIt(){
     $('.editor').val(encodeURIComponent($('.editor').val()));
}

或者如果您只是通过ajax保存其值,那么您可以发布html的encodeURIComponent而不是html本身。

现在WebUtility.HtmlDecode应该可以正常运作。

答案 1 :(得分:1)

只需使用

@Html.Raw("&lt;h2&gt;SomeText&lt;/h2&gt;")

这会将编码数据解码为html并将其存储在DB中 你试图解码,然后再次编码它 这就是你在DB中获取html编码数据的原因