由于某些原因,ASP.NET文本框中的换行符未存储在我的数据库中。
我正在使用Server.HtmlEncode(txtAbout.Text)从文本框中获取文本。 这部分有效,文字用换行符取出。
但是当我跟踪文本时,换行符会在此行之后丢失:
db.AddInParameter(dbCommand, "About", DbType.String, about);
db.ExecuteNonQuery(dbCommand);
在存储过程中,varable @about是ntext。 在表中,列是关于ntext
我希望有人可以提供帮助。
答案 0 :(得分:2)
在将其发送到存储过程之前,您能否跟踪“约”的值是什么?
我怀疑当您输出存储的结果时,您正在将其分配给标签。而是将其输出为文字:
<asp:Literal runat="server" id="litAbout" />
然后,一旦你完成了,然后做“放置”。例如:
litAbout.Text = Server.HtmlEncode(aboutText).Replace(Environment.NewLine, "<br/>");
此外,这是您要对输出进行编码的位置。在输出结果之前,您几乎总是只进行最终的转换;我们的想法是你不想失去原始的投入。
答案 1 :(得分:1)
输出到标签不是问题。问题是将它输出到标签而不进行Justin提到的替换。
我刚刚在VS2010(.NET 3.5)中对此进行了测试,但它确实有效。
<asp:Label runat="server" ID="lblAbout" />
lblAbout.Text = Server.HtmlEncode(aboutText).Replace(Environment.Newline, "<br />");
此解决方案与文字相同。