同一个aspx,我想获取前台想获取后台的UserID,怎么做
1:用隐藏域获取ViewState
    protected void Page_Load(object sender, EventArgs e)
    {//把用户的昵称传到客户端显示,并将userID放到隐藏域
        if (Session["UserID"] != null)
        {
            userid = Session["UserID"].ToString();
            lab_Nickname.Text = Session["Nickname"].ToString();
            //Response.Write(userid);
            if (ViewState["userid"] == null)
            {
                ViewState["userid"] = userid;
            }
            else {
                ViewState["userid"] ="";
            }
前台: <input id="userid"type="hidden" value="ViewState('userid')" />   结果提示:ViewState未定义;2:我在后台建了个函数
 public string postUserID()
    {
        if( userid!=null){
         return  userid;
        }
        else
        {
            return  "";
        }
    }然后JS: var userid=<%=postUserID()%>;结果提示“应为表达式”哪里错了?还有别的办法吗?请各位帮忙看看,谢谢了~~

解决方案 »

  1.   

    =<%#postUserID()%>;  你用#号试试
      

  2.   

    不行啊,还有发现个问题是如果有这句var userid=<%#postUserID()%>,userid必须有值,页面才会load
    即是说,我不登陆就话,页面就不读取评论数据
    怎么办?
      

  3.   

     <input id="userid"type="hidden" value="<%=ViewState('userid')%>" />   var userid='<%=postUserID()%>';
      

  4.   

    然后JS: var userid="<%=postUserID()%>";这样应该就可以了。
      

  5.   

    第一个:value="ViewState('userid')"  ViewState会被认为是你定义的js函数名,所以出现未定义
    第二个:JS好像不能用<%#%>这种东西与后台交互实现:还是你第二种后台那个函数,前台可以用
    <input id="userid"type="hidden" value="<%#postUserID()%>" />
    这样隐藏域就取到了
    然后js里document.getelementbyid(“userid”).value就都能取到了
      

  6.   

    不是<%#postUserID()%>这个就是<%=postUserID()%>
    试一下把
      

  7.   


    谢谢,这样做不错,这是出于为什么?
    为什么ViewState用不了?
      

  8.   


    LZ的方法是对的 不过要加上服务器标签
    <input id="userid"type="hidden" value='<%=ViewStata("xx")%>' />
    直接通过后台返回数据 用JS获取的话
    var userid='<%=postUserID()%>';
      

  9.   


    正解,js里是不能直接用<%%> <%#%>的
      

  10.   


    我是放在from里的,有runat=server,就是提示未定义
      

  11.   


     protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack) 
                {
                    ViewState["UserID"] = 1;
                }
            }
        
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <input id="Text1" type="text" value='<%=ViewState["UserID"] %>' /></div>
        </form>
    </body>
    </html>
    楼主 给分吧
      

  12.   

    var value = document.getElementById("隐藏域ID");
    或者JQUERY  $("#隐藏域ID").val();
    注意加载顺序问题,js代码应该放在隐藏域的后边才能获取到隐藏域的值。
      

  13.   


    直接var userid="<%=postID()%>",放在异步对象js代码的前面