元素'tr'不能嵌套在元素'tr'内部。

4
我有一个类似这样的部分视图:
@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!


生成的HTML长什么样? - T. Junghans
围绕部分视图的代码是什么样子的?你也有一个tr吗? - LockTar
@LockTar 我已经添加了主视图。 - user247702
@TJ。我已经添加了生成的HTML。 - user247702
1
@Stijn,你生成的HTML是完全有效的。 - T. Junghans
显示剩余2条评论
2个回答

1

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


0

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

<table>

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

</table>

看起来你已经有一个打开的tr标签,而你正在尝试添加更多的tr标签。如果你的表格中已经有tr标签,请确保在循环开始之前将它们全部关闭:

<tr>..</tr>

我在其他地方没有打开的 tr 标签。这个部分视图没有 table 标签,因为我正在使用无限滚动通过 AJAX 加载更多行。 - user247702
我已经将你的代码通过在线 HTML5 验证器运行,验证结果正确。因此,我只是认为这可能是 Visual Studio 在抱怨一些东西。你在哪里出现了这个错误?在设计器中吗? - Brendan Vogt
它会显示在错误列表窗格中,作为一个警告。我猜这是一个 bug,唯一的解决方法是在 Visual Studio 中禁用验证? - user247702
我会就这么放着它。如果我知道我是对的,那我就会离开它。 - Brendan Vogt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接