Response.Write将数据库中的文本打印为HTML

时间:2011-07-20 22:07:09

标签: c# asp.net html

我正在将textarea中的文本存储到我的数据库中。这个文本可以包含新行,特殊字符等。但是我想确保当我使用response.write显示它时,它就像在textarea控件中显示一样。我想这样做的原因是因为我想给用户一个打印视图表单。以下解决方案不起作用。使用ASP.NET / C#

例如

foreach (DataRow row in dview.Table.Rows)
{
Response.Write("<tr>");
                    Response.Write(String.Format("<td>{0}<br/><br/></td>",   row[1].ToString().Replace("\n", "<br/>")));
                    Response.Write("</tr>");

由于

3 个答案:

答案 0 :(得分:1)

不要这样做,你会遇到问题,特别是涉及引号和符号时。

存储如下数据:

 HttpUtility.HtmlEncode("<p>Lorem ipsum ...</p>"); //your HTML to encode goes here

并像这样检索它:

myPlaceHolder.Text = HttpUtility.HTMLDecode(myData);

以下是HTMLEncode/Decode

的更多信息

答案 1 :(得分:1)

foreach (DataRow row in dview.Table.Rows)
{
Response.Write("<tr>");
                Response.Write(String.Format("<td>{0}<br/><br/></td>", row[1].ToString().Replace(Environment.NewLine, "<br/>")));
                Response.Write("</tr>");

永远不要使用“\ n”始终使用Environment.NewLine

答案 2 :(得分:1)

您可以在<pre></pre>块内显示输出,该输出将保留所有空格,包括多个空格,换行符等。

建议使用HTML编码,因此数据中的任何尖括号都不会破坏输出HTML。