<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        string s="<script>alert('Hello')<"+"/script>";
        lb1.Text = s;
    }
</script><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Test-CSDN</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <asp:Label ID="lb1" runat="server" />
    </div>
    </form>
</body>
</html>

解决方案 »

  1.   

    你说的对,专业的asp.net程序员因为懂得html的规矩,所以只会用asp.net的   RegisterClientScriptBlock(...)
       RegisterStartupScript(...)来注册脚本。
      

  2.   

    可以参考:http://www.google.cn/search?hl=zh-CN&rls=com.microsoft%3A*%3AIE-SearchBox&rlz=1I7GGIJ&newwindow=1&q=ClientScript.RegisterClientScriptBlock&btnG=Google+%E6%90%9C%E7%B4%A2&meta=lr%3Dlang_zh-CN%7Clang_zh-TW&aq=f&oq=
      

  3.   

    现在大部分留言都使用了AJAX,这个本来就是异步操作,完了也是直接调用JS代码,所以不存在输入脚本和REDIRECT方式了建议在小细节上多用用AJAX,还是比较方便的
      

  4.   

    使用 Page.ClientScript.RegisterClientScriptBlock可以防止javascript 函数放置在page的顶部
      

  5.   

    用Literal对象在当前Page输出,例如public void showMsg(Page thisPage, string alertMessage)
    {
       Literal txtMsg = new Literal();
       txtMsg.Text = "<script>alert('" + alertMessage + "')</script>";
       thisPage.Controls.Add(txtMsg);
    }
      

  6.   

     response.write(" <script>alert('留言成功') </script>"); 
      

  7.   

    clicentScriptManger cs=this.clientScript;
    cs.RegisterStartupScript("a",this.gettype(),"<script>alert('a!!')</script>") 里面需要三个参数.用它注册脚本就可以了,或者使用page.RegisterStartupScript()