我想在评论框中允许HTML(最终使用tinymce或类似的东西),将其存储在MSSQL数据库中,然后将其读回到在tabl单元格中呈现字段的页面。
在我修复了action方法的验证问题之后,这一切都可以正常存储HTML。但是,当从数据库读回时,它会呈现带有HTML标记的文本,而不是格式化的HTML。即如果我查看表中的HTML源代码,就像这样:
<td>
<p>Testing HTML</p><p>Hope it works</p>
</td>
那么如何将其渲染为格式化文本?当我这样做以测试验证时,我只是在textarea中的标签中写道。
答案 0 :(得分:2)
Professional ASP.NET MVC提供了有关“代码块”差异的解释:
当我们查看Details.aspx时 更接近模板,我们会发现 它也包含静态HTML 作为嵌入式渲染代码。 &lt; %%&gt;码 nuggets在View中执行代码 模板渲染,&lt;%:%&gt;码 nuggets执行包含的代码 在他们内部然后渲染结果 到模板的输出流。
本说明书中的左边是&lt;%=%&gt;中的代码块。作品。 Scott Guthrie在他的帖子New <%: %> Syntax for HTML Encoding Output in ASP.NET 4 (and ASP.NET MVC 2)中描述了不同之处。 Phil Haack在以Html Encoding Code Blocks With ASP.NET 4开头的HTML编码块系列中更详细地讨论了这一点。
您发现的是&lt;%=%&gt; &lt;%:%&gt;将原始HTML吐出到输出流中做HTML编码。
答案 1 :(得分:0)
您想要HtmlDecode
提供MSDN示例
HttpUtility.HtmlDecode方法
using System;
using System.Web;
using System.IO;
class MyNewClass
{
public static void Main()
{
String myString;
Console.WriteLine("Enter a string having '&' or '\"' in it: ");
myString=Console.ReadLine();
String myEncodedString;
// Encode the string.
myEncodedString = HttpUtility.HtmlEncode(myString);
Console.WriteLine("HTML Encoded string is "+myEncodedString);
StringWriter myWriter = new StringWriter();
// Decode the encoded string.
HttpUtility.HtmlDecode(myEncodedString, myWriter);
Console.Write("Decoded string of the above encoded string is "+
myWriter.ToString());
}
}