Response.Write("<Script Language='javascript'>window.open('UserInfoView.aspx?UserID="+HeGe.Items[i].Value.ToString()+"')</Script>");
这样的语句有什么错呢
我换成
string url=("<Script Language='javascript'>window.open('UserInfoView.aspx?UserID=*')</Script>");
url.Replace(*,HeGe.Items[i].Value.ToString()+");
Response.Write(url);
也还是报错,主要是后面的"</script>"引起的,想把</script>写成</>好像也不得行的

解决方案 »

  1.   

    需要进行转义:
    Response.Write("..."+@"</Script>");
      

  2.   

    写全看一下:
    Response.Write("<Script Language='javascript'>window.open('UserInfoView.aspx?UserID="+HeGe.Items[i].Value.ToString()+"','Test','');</Script>");
      

  3.   

    变量最好处理一下,试试看:
    Server.UrlEncode(HeGe.Items[i].Value.ToString())
      

  4.   

    Response.Write("<Script Language=javascript>window.open('UserInfoView.aspx?UserID="+HeGe.Items[i].Value.ToString()+"')</Script>");
      

  5.   

    Response.Write(@"<Script Language='javascript'>window.open('UserInfoView.aspx?UserID="+HeGe.Items[i].Value.ToString()+@"')</Script>");
      

  6.   

    string strScript;
    strScript = Response.Write("<script>")
    strScript += Response.Wrire("代码块")
    strScript += Response.Write("</")
    strScript += Response.Wrire("script>")
      

  7.   

    我这样写还是错,主要是那个“</Script>”把后面的代码都弄成文本的了。所以导致后面出错。在下面这个语句的地方反而没有提示出错。  Response.Write(@"<Script Language='javascript'>window.open('UserInfoView.aspx?UserID="+HeGe.Items[i].Value.ToString()+@"')</Script>"