.cs文件里代码:
string ss="12345";
protected void Page_Load(object sender, EventArgs e)
{
  ClientScript.RegisterStartupScript(this.GetType(), "", "<script>var temp=" + ss + "</script>");
}
.aspx文件代码
<script>
   window.alert(temp);
</script>问题出现temp未定义
我在网上看别人关于JavaScript访问C#变量的方法:
方法一:1、通过页面上隐藏域访问
<input id="xx" type="hidden" runat="server">
方法二:1、如后台定义了PUBLIC STRING N; 前台js中引用该变量的格式为''或"++"
方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本
"<script language='javascript'>var temp=" + tmp + "</script>"
  tmp是后台变量,然后js中可以直接访问temp获得值。我用的方法三出现错误temp未定义
谁知道帮忙解答哈!谢啦!
还有第一二种方法怎么我实现的时候都出现错误,谁能写几行实例代码具体点。谢谢啦!

解决方案 »

  1.   

    string ss="12345"; 
    protected void Page_Load(object sender, EventArgs e) 

      ClientScript.RegisterStartupScript(this.GetType(), "", "test("+ss+")",true); 

    .aspx文件代码 
    <script> 
    function test(temp)
    {
      window.alert(temp); 
    }
    </script> 
    这样可以了。
      

  2.   

    to:comzheng
    可以了。谢了第一二种怎么实现
    再谢!
      

  3.   

    aspx文件:
    <script>
    function test(str)
    {
        alert(str);
    }
    </script>
    后台文件:
    protected void Page_Load(object sender, EventArgs e){
        string str="capucivar";
        Page.Attributes.Add("onload","javascript:test("+str+")");
    }
    这样也可以吧。
      

  4.   

    第一种:
    <script>
    function test()
    {
        var str=document.getElementById("<%=aa.ClientID%>").value;
        alert(str);
    }
    </script>
    <input type="hidden" value="capucivar" id="aa" />
      

  5.   

    to:capucivar
    谢啦
     var str=document.getElementById(" <%=aa.ClientID%>").value;
    我不理解<%=aa.ClientID%>这什么意思?跟后台的联系么??
      

  6.   

    aa是服务器端文本框控件(上面的文本框少些了个runat="server",不好意思),aa.ClientID是取得页面aa文本框的客户端ID。
    <input type="hidden" value="capucivar" id="aa" runat="server" />
      

  7.   

    没事
    我问的是如果在.cs文件里定义一个public string ss;
    在js里引用这个ss,var txt=ss,,输出alert(txt);间接的输出ss
      

  8.   

    那应该就是这样了:
    <script>
    alert("<%= ss%>");
    </script>