请问下面代码输入&nbsp;可以在Label中显示&nbsp; 但是如果输入<html>这样的字符串,就会报错?那么如何输入<html>这样的字符串也能在Label中显示而不是被解释成HTML标签?
[code]
<html>
<head>
<script language="C#" runat="server">
void Btn1_Click(Object Sender,EventArgs e)
{
Label1.Text = System.Web.HttpUtility.HtmlEncode(Text1.Text);
}
</script>
</head> <body>
<form runat="server">
<asp:Label id="Label1" Text="Label1默认的值" Font-Name="Verdana" Font-Size="10pt" Width="200px" BorderStyle="Solid" BorderColor="#0000ff" runat="server" />
<p>
<asp:TextBox id="Text1" Text="请输入您要测试的字符串!" Width="200px" runat="server" />
<asp:Button id="Btn1" Text="执行" OnClick="Btn1_Click" runat="server" />
</p>
</form>
</body>
</html>
[/code]

解决方案 »

  1.   

    那请问System.Web.HttpUtility.HtmlEncode()我查了手册,应该是用来处理输入形同<html>这样的输入的,使得它不会被解释成HTML标签,但我发现不行,倒是&nbsp;这样的可依照原样输出儿不被解释!请那位详细解释下System.Web.HttpUtility.HtmlEncode(),谢谢!
      

  2.   

    Q: 请问System.Web.HttpUtility.HtmlEncode()我查了手册,应该是用来处理输入形同<html>这样的输入的
    ————————————————————————————————————————————
    A: 不是。尚且不能输入,就无所谓处理。ASP.NET在浏览器提交POST命令到服务器的时候就拦截了,你的程序根本去使用 HtmlEncode 处理输入的机会。所谓处理,应该是这样的:Label1.Text = System.Web.HttpUtility.HtmlEncode("<html>");这样没问题!
      

  3.   

    因此你要把这个问题分为两个无关的技术部分考虑。一个是是否命令asp.net允许上传那些html、脚本等。例如如果一个人在帖子的回复中写 html、脚本 等进行危险的弄花整个页面的代码,其内容时候会在显示整个帖子内容的时候被执行。另一个就是你是否已经正确地、充分地使用 HtmlEncode 了。这样当文本中有 html、脚本等也不会弄花整页页面,而仅仅会当作普通的文本显示。一般,如果你的程序谨慎地解决了第二个问题,第一个问题就应该放开限制。