如何将<script>保存为c#中的文本

时间:2015-09-18 07:38:41

标签: c# asp.net c#-4.0

如果我在aspx页面的comment feild中输入“&lt; script>”标签,页面的设计和布局就会失真。我在下面写了代码行

&#xA;&#xA;

在cs文件中

&#xA;&#xA;
  Result.CommentBody = Server.HtmlEncode (txtCommentBody.Text);&#xA;  
&#xA;&#xA;

是aspx文件

&#xA;&#xA;
  &lt; asp:Label ID =“lblComment”runat =“server”&#xA; Text ='&lt;%#Server.HtmlDecode(Eval(“CommentBody”)。ToString())%&gt;' /&gt;&#xA;  
&#xA;&#xA;

它不起作用...是否有任何替代方法可以保存和检索为文本...请帮助我!!!

&#xA;

3 个答案:

答案 0 :(得分:1)

这应该有效

在您的aspx页面中

<asp:Label ID="lblComment" runat="server" 
Text='<%# GetMethod(Eval("CommentBody").ToString())%>' />
在你的代码隐藏中

public string GetMethod(string CommentBody)
{


return Server.HtmlEncode(CommentBody);
}

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

改为使用Literal并设置Mode="Encode"

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

如果您在文字中应用 ,那么只有Label超过Literal的原因才会出现。