【问题标题】:Response.Write print text from database as HTML响应。将数据库中的打印文本写为 HTML
【发布时间】:2011-10-09 19:03:32
【问题描述】:

我正在将文本从文本区域存储到我的数据库中。该文本可以包含换行符、特殊字符等。但是我想确保当我使用 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>");

谢谢

【问题讨论】:

    标签: c# asp.net html


    【解决方案1】:

    永远不要使用“\n”总是使用Environment.NewLine,而不是:

    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>");
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        不要那样做,你会遇到问题,尤其是在涉及引号和符号时。

        像这样存储数据:

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

        然后像这样检索它:

        myPlaceHolder.Text = HttpUtility.HTMLDecode(myData);
        

        这里有更多关于HTMLEncode/Decode的信息

        【讨论】:

        • 有时输入的数据不包含 HTML,您希望将其转换为用户在 HTML 中输入的数据。那你有什么建议?捏造违背数据输入概念的数据输入?
        • 我不明白。 HttpUtility.HtmlDecode( HttpUtility.HtmlEncode( myString ) ) = myString 总是。因此,即使他们没有输入 HTML,数据也会以他们输入的方式返回。
        • 用户输入纯文本。不是通过所见即所得的编辑器。他们进入“Helloworld”。您想将其显示为“Helloworld”。当输出与输入匹配时,您的方法很好,但是当输出格式与输入不匹配时,您将不得不捏造数据以使其工作。发帖人要求如何更改输出格式,而不是输入格式。
        • 另外:伪造数据是在存储之前对用户输入的任何类型的数据更改。改变数据的形式不是捏造(加密)。然而编码和解码,是。我也不同意所有数据都应该在存储之前进行编码。我相信所有输出都应该被编码,除非允许 HTML。用户界面应阻止恶意数据。
        • 客户端/UI 不是唯一验证的地方。验证应该在客户端和服务器端进行。在绕过客户端验证的情况下,服务器端验证是确保不输入错误数据的额外关键部分。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-20
        相关资源
        最近更新 更多