如何在 C# 中将 <script> 保存为文本

How to save <script> as text in c#

如果我在我的 aspx 页面的评论字段中输入“<脚本>”标签,页面的设计和布局就会失真。我在下面写了一行代码

在cs文件中

Result.CommentBody = Server.HtmlEncode(txtCommentBody.Text);

是aspx文件

<asp:Label ID="lblComment" runat="server" 
     Text='<%# Server.HtmlDecode(Eval("CommentBody").ToString()) %>' />

它不起作用...是否有其他方法可以将文本保存和检索...请帮助我!!!

这应该有效

在您的 aspx 页面中

<asp:Label ID="lblComment" runat="server" 
Text='<%# GetMethod(Eval("CommentBody").ToString())%>' />

在您的代码隐藏中

public string GetMethod(string CommentBody)
{


return Server.HtmlEncode(CommentBody);
}

您正在解码而不是编码。为了显示脚本标签(实际上是任何标签),您需要 html 编码特殊字符。

调用 Server.HtmlEncode 而不是 Server.HtmlDecode,或者如果您将其编码存储在数据库中(或者谁知道在哪里),请不要再次编码。

改用 Literal 并设置 Mode="Encode":

<asp:Literal ID="lblComment" Mode="Encode" runat="server"
     Text='<%# GetMethod(Eval("CommentBody").ToString())%>' />

您想要 Label 而不是 Literal 的唯一原因是您要 将样式 应用到您的文本。