举个例子:
前台:
  <div id="menu_con" runat="server">
                                                                <div id="qh_con0" runat="server" style="display: block">
                                                                    <ul>
                                                                                                                                              <li><a href="#" onclick="addTab('桌面主题','/NetBar/Client/Desktop/Default.aspx')"><span><s class="ico05"></s>桌面主题</span></a></li>
                                                                        <li><a href="#" onclick="addTab('硬件检测','/NetBar/Hardware/Default.aspx')"><span><s class="ico06"></s>硬件检测</span></a></li><li class="menu_line2">
                                                                        </li>
                                                                                                                                          </ul>
                                                                </div>
</div>后台代码:menu_con.InnerHtml=@"<div id='menu_con' runat='server'>
                           <div id='qh_con0' runat='server' style='display: block'>
                                                                    <ul>
                                                                        <li><a href='#' onclick='addTab('代理列表','/Agent/Default.aspx')'><span><s class='ico01'></s>代理列表</span></a></li>
                                                                        <li><a href='#' onclick='addTab('网吧列表','/NetBar/Pay/Reg/NonDisk/Default.aspx')'><span><s class='ico02'></s>网吧列表</span></a></li>
                                                                        </ul>
                                                                </div></div>逻辑上就是后台覆盖掉前台的代码。。但是报错
我想请问。问题到底出在哪。。难道不是把所有的双引号改成单吗?

解决方案 »

  1.   

    menu_con.InnerHtml=@"<div id='menu_con' runat='server'>InnerHtml 不用@吧。  我也忘了   试试呢。
      

  2.   

    <div id='menu_con' runat='server'>
    </div>去掉即可
      

  3.   

    id='menu_con'的Div不变;因为你只是要覆盖id为qh_con0里面的所有的内容。
      

  4.   

     <div id="menu_con" runat="server">
      <div id="qh_con0" runat="server" style="display: block">
      <ul>
      <li><a href="#" onclick="addTab('桌面主题','/NetBar/Client/Desktop/Default.aspx')"><span><s class="ico05"></s>桌面主题</span></a></li>
      <li><a href="#" onclick="addTab('硬件检测','/NetBar/Hardware/Default.aspx')"><span><s class="ico06"></s>硬件检测</span></a></li>
      <li class="menu_line2"></li>
      </ul>
      </div>
    </div>
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> protected void Button1_Click(object sender, EventArgs e)
        {
            menu_con.InnerHtml = @"<div id='qh_con0' runat='server' style='display: block'>
      <ul>
      <li><a href='#' onclick='addTab('代理列表','/Agent/Default.aspx')'><span><s class='ico01'></s>代理列表</span></a></li>
      <li><a href='#' onclick='addTab('网吧列表','/NetBar/Pay/Reg/NonDisk/Default.aspx')'><span><s class='ico02'></s>网吧列表</span></a></li>
      </ul>
      </div>";    }
      

  5.   


    onclick='addTab('代理列表','/Agent/Default.aspx')'
    建议改成
    onclick=\"addTab('代理列表','/Agent/Default.aspx')\"
      

  6.   


    menu_con.InnerHtml=@"<div id='menu_con' runat='server'>
      <div id='qh_con0' runat='server' style='display: block'>
      <ul>
      <li><a href='#' onclick=\"addTab('代理列表','/Agent/Default.aspx')\"><span><s class='ico01'></s>代理列表</span></a></li>
      </ul>
      </div></div>
    注意看 onclick的地方,你之前是两个单引号,其实是相当于 onclick='addTab',没后文了,也没找到对应的函数,当然会报错了用string输出html标签这种形式,最好是看一下生成的源文件,里面的格式正不正确
      

  7.   

    menu_con.InnerHtml = "<div id=\"qh_con0\" runat=\"server\" style=\"display: block\">";
     menu_con.InnerHtml +="<ul><li><a href=\"#\" onclick=\"addTab('代理列表','/Agent/Default.aspx')\"><span><s class=\"ico01\"></s>代理列表</span></a></li>";
     menu_con.InnerHtml +="<li><a href=\"#\" onclick=\"addTab('网吧列表','/NetBar/Pay/Reg/NonDisk/Default.aspx')\"><span><s class=\"ico02\"></s>网吧列表</span></a></li></ul></div>";
    这下应该没问题了。这两种在我都没问题。
      

  8.   

    晕、你是的意思是改成
     <li><a href='#' onclick=\"addTab('代理列表','/Agent/Default.aspx')\"><span><s class='ico01'></s>代理列表</span></a></li>
      这种格式?不行。。直接 报错了
      

  9.   

    kongwei521
      很感谢你积极回答。。但是你这种+=的方式。如果是一大段代码怎么办。。不能换行啊  我记得用个@就可以了啊
      

  10.   

     你说的+=方法可以。。但是很麻烦。。 
     7楼方法不行。我一开也是那样做的。。问题估计出在字符串的长度上。
     我还有种新方法
     string str="<div id=\"qh_con0\" runat=\"server\" style=\"display: block\">"+
         "<div id=\"qh_con0\" runat=\"server\" style=\"display: block\">";
    带了个+号,解决换行的问题了
      

  11.   

     string str="<div id=\"qh_con0\" runat=\"server\" style=\"display: block\">"+
      这个和我15楼的没什么差别。还有一个是用StringBuilder。也的一行一行的加。看来没啥好办法来。
      

  12.   

    是的是的。。StringBuilder 和+=没什么区别。。
    只是看上去会显得很负重
      

  13.   


    对,你是在menu_con中再插入id为menu_con的div,这样肯定会出错的