我的前台是
<div id="while_html" style=" display:none" name="while_html"></div>这个div的值是js赋予的,我后台准备去取出来这个div的值,
 protected void Button1_Click(object sender, EventArgs e)
        {
            string html = Request.Form["while_html"];
            string html2 = while_html.InnerHtml;
        }为什么这两种方法都取不到js赋予这个div的值呢

解决方案 »

  1.   

    <div id="while_html" runat="server" style=" display:none" name="while_html"></div>
      

  2.   


    哦,我源码里写了runat=“server”了,还是我上面说的毛病!
      

  3.   

    应该加上:runat="server"属性,不然后台是引用不了这个DIV的
    代码:
    <div id="while_html" runat="server" style=" display:none" name="while_html"></div> 
      

  4.   

    <div id="while_html" class="content" style="display:block;padding:0px 10px" runat="server">
    后台
    while_html.InnerHtml ="";
    或用Request.Form取值或者你写到隐藏域里 获取隐藏域控件 也要加runat="server"
      

  5.   

    用JS赋值,应该也用JS取完在转移到什么隐藏控件里再取
      

  6.   


    后台用while_html.InnerHtml
    或者request.form都取不到值,是空的!
      

  7.   

    string aa = while_html.InnerHtml
      

  8.   

    while_html.InnerHtml ="";
    你不可以先写这个,这个是在赋值啊,把这个while_html DIV里面的东西全都给赋成空了,你获取出来当然是空的了!!!!
      

  9.   

    <div id="while_html" class="content" style="display: block; padding: 0px 10px" runat="server">
            123
        </div> Response.Write(this.while_html.InnerHtml.ToString());
      

  10.   

    request.form是读取表单控件,div不算表单控件,你可以考虑先将while_html.InnerHtml付给一个隐藏域,然后.net用Request.Form[""]读取隐藏域的值
      

  11.   

    我把东西放到隐藏的div里,这样不行吗 为什么取不到?
      

  12.   

    <div id="while_html" class="content" style="display: block; padding: 0px 10px" runat="server">
            <%= str %>
        </div>
      public string str = "test";
        protected void Page_Load(object sender, EventArgs e)
        {        Response.Write(this.while_html.InnerText.ToString());
      

  13.   

    最好用hidden 
    js赋值得话,后台取不到。
      

  14.   

    用隐藏控件:<asp:HiddenField ID="hfIsDel" runat="server" />
    jS代码:
    var hfIsDel = document.getElementById('<%=hfIsDel.ClientID %>');
    hfIsDel.value ="1";
    后台代码:
    string strValue = hfIsDel.value;
      

  15.   

    <div id="while_html" style=" display:none" name="while_html"></div>后台用这两种方法,string html = Request.Form["while_html"];这个获取方法是因为div没有name这个属性也没有value这个概念,你要是用input元素或者select等等,就可以获取到
      string html2 = while_html.InnerHtml;这个方法如果要获取到要runat属性
      

  16.   

    那 hiddenfield最多能存储多少,要取的比较大!最多是8M还是多少?
      

  17.   

    div没有name,value属性,form表单不会提交后后台就获取不到了
      

  18.   


    但是楼主说的innerHTML是这样的“这个div的值是js赋予的,我后台准备去取出来这个div的值”,也就是说它不是asp.net应用程序生成的。
      

  19.   

    Request 应该是取不到while_html  DIV吧。DIV 没有value值吧~ 所有要用一个隐藏的控件来代替他取值~
      

  20.   


    算不算表单控件不重要(实际上只要是表单里的html element就可以,我不把它叫做控件)。浏览器执行form提交时,仅仅提交value,不可能提交innerHTML给服务器的。是因为这个原因,才有人会考虑使用脚本把它写入另外一个html element的value里边。而不是因为“算表单控件”的问题。