元素'tr'不能嵌套在元素'tr'中

时间:2012-03-20 10:29:14

标签: visual-studio-2010 asp.net-mvc-3 html5 validation

我有一个像这样的部分观点:

@model List<user>

@foreach (var user in Model)
{
    <tr>
        <td>@user.name</td>
        <td>...</td>
    </tr>
}

并得到如下错误:

  

验证(HTML5):元素'tr'不能嵌套在元素'tr'中。

这让我烦恼不已,但我想摆脱它。安装Web Standards Update没有帮助。有什么想法吗?

修改 这是主要观点:

<table>
    <thead>
        <tr>
            <th>@i18n.name</th>
            <th>...</th>
        </tr>
    </thead>
    <tbody id="results">
        @Html.Partial("list_rows", @Model.users)
    </tbody>
</table>

这是生成的HTML:

<table>
    <thead>
        <tr>
            <th>naam</th>
            <th>...</th>
        </tr>
    </thead>
    <tbody id="results">


<tr>
    <td>...</td>
    <td>...</td>
</tr>
<tr>
    <td>...</td>
    <td>...</td>
</tr>

    </tbody>
</table>

编辑通过W3C验证程序提取整个页面

  

此文档已成功检查为HTML5!

2 个答案:

答案 0 :(得分:1)

在循环模型之前打开<tr>元素时会出现此错误。到目前为止,您提出的代码是正确的,没有错误。

答案 1 :(得分:0)

确保您的代码看起来像这样:

<table>

@foreach (var user in Model)
{
     <tr>
          <td>@user.name</td>
          <td>...</td>
     </tr>
}

</table>

好像你已经有一个打开的tr标签,你试图在其中添加更多的tr标签。如果你的表中已经有tr标签,只需确保它们在循环开始之前全部关闭:

<tr>..</tr>