为什么在地球上ContentPlaceHolder呈现为表格?

时间:2009-11-08 22:02:46

标签: asp.net user-controls

这是我的aspx代码

<body >
    <form id="_form1" runat="server" >        
        <div style=" width:100%; text-align:center;">    
            <div style="width:80%; margin:0 auto;" >
                <asp:ContentPlaceHolder ID="_head"  runat="server"></asp:ContentPlaceHolder>            
            </div>
        </div>    
    </form>
</body>

在我的ContentPlaceHolder中

<div>
This is test...
</div>

当我运行此应用程序时,我在IE8中的html呈现为

<html>
...

<div>
 <table>
  <tr>
   <td>
    <div> 
      this is test
    <div> 
   </td>
  </tr>
 </table>
<div>

...
</html>

现在该表来自何处以及如何更改它?

由于

2 个答案:

答案 0 :(得分:2)

您使用的是什么设置?如果您正处于项目的开始并且真正关注生成的HTML的结构,那么您可能会对asp.NET MVC感兴趣,这更符合Web / html标准。

编辑 - 就我从你的问题中所说的那样,这是我做你所说的你所做的输出。

<body >
    <form name="aspnetForm" method="post" action="WebForm1.aspx" id="aspnetForm">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTEwMDUyNjYzMjhkZBdGjIzV2B+QZdda+0wRGTEHyQlg" />
</div>

        <div style=" width:100%; text-align:center;">    
            <div style="width:80%; margin:0 auto;" >

<div>
This is test...
</div>

            </div>
        </div>    
    </form>

</body>

至少存在四种可能性

  1. 你做错了。
  2. 我做错了,但至少得到了理想的结果。
  3. 我们都做错了。
  4. 我们正在使用不同版本的asp.net,以不同的方式设置我们的项目等。更多细节可能实际上有用

答案 1 :(得分:1)

ASP.NET在某些Internet浏览器上呈现为表格。在internet explorer上,它呈现为table,在chrome上呈现为div标记。

我不知道如何在默认情况下防止这种情况,但我使用了一个名为CSSFriendly的.dll文件,这使我能够将菜单呈现为列表而不是表格。也许您可以尝试使用内容占位符。

亲切的问候