Asp.net 我如何避免使用“a”;表格嵌套在span";vb.net aspx页面出现w3c验证错误?

Asp.net 我如何避免使用“a”;表格嵌套在span";vb.net aspx页面出现w3c验证错误?,asp.net,vb.net,w3c-validation,Asp.net,Vb.net,W3c Validation,我正在努力使我的网站完全符合w3c验证程序 目前,我得到了一个错误,因为一个通过编程生成并插入标签的文本属性的表显示为一个嵌套在span标记中的表 e、 g MyPage.aspx.vb strHtml = "<table><tr><td>Hello World</td></tr></table>" Me.myTable.Text = strHtml strHtml=“你好,世界” Me.myTable.Text=str

我正在努力使我的网站完全符合w3c验证程序

目前,我得到了一个错误,因为一个通过编程生成并插入标签的文本属性的表显示为一个嵌套在span标记中的表

e、 g

MyPage.aspx.vb

strHtml = "<table><tr><td>Hello World</td></tr></table>" 
Me.myTable.Text = strHtml
strHtml=“你好,世界”
Me.myTable.Text=strHtml
MyPage.aspx

<asp:Label ID="myTable" runat="server" Text="testimonialTable"></asp:Label> 

呈现为:

<span id="ctl00_Main_myTable">
<table><tr><td>Hello World</td></tr></table>
</span>

你好,世界
当我在validator.w3.org上验证我的页面时,我得到以下错误:

文档类型此处不允许元素“表”;缺少“对象”、“小程序”、“映射”、“iframe”、“按钮”、“ins”、“del”开始标记之一

所提到的元素不允许出现在您放置它的上下文中;其他提到的元素是唯一既允许存在又可以包含提到的元素的元素。这可能意味着您需要一个包含元素,或者您可能忘记关闭前一个元素

我假设这是因为我试图将一个块元素(表)放在一个内联元素(span)中,但我不知道其他方法如何做到这一点

有人想到解决办法吗

谢谢

Ben

使用标签代替
标签,以避免包装
元素:

<asp:Literal ID="myTable runat="server" />
使用标签而不是
标签
,以避免包装
元素:

<asp:Literal ID="myTable runat="server" />

使用面板并向其添加generichtml控件。

使用面板并向其添加generichtml控件。

为什么不使用表控件:

<asp:Table ID="myTable" runat="server" />


然后只需创建列和行并将它们添加到表服务器端。

为什么不使用表控件:

<asp:Table ID="myTable" runat="server" />


然后简单地创建列和行,并将它们添加到表服务器端。

您就是一个传奇!(出于兴趣,这是使用文字而不是标签的最佳实践吗?-对不起,有点生疏!)这取决于你在做什么<代码>标签
呈现可以使用控件上的属性设置样式的
元素
Literal
仅呈现其
Text
属性的值,不提供样式设置方法。为了将HTML注入对象模型,
Literal
工作得很好。然而,注入HTML与ASP.NET控件抽象有些冲突,您可能想考虑是否可以使用<代码> GRIDVIEW 或<代码>表>代码>来构建您的表。您是一个传奇!(出于兴趣,这是使用文字而不是标签的最佳实践吗?-对不起,有点生疏!)这取决于你在做什么<代码>标签
呈现可以使用控件上的属性设置样式的
元素
Literal
仅呈现其
Text
属性的值,不提供样式设置方法。为了将HTML注入对象模型,
Literal
工作得很好。但是,注入HTML与ASP.NET控件抽象有些冲突,您可能想考虑是否可以使用<代码> GRIDVIEW 或<代码>表< /代码>来构建表。