2012-03-20 58 views
3

内被嵌套我有这样的部分视图:元素 'TR' 不能元件 'TR'

@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!

+0

生成的HTML看起来像什么? – 2012-03-20 10:33:50

+0

代码如何看起来像围绕局部视图?你有没有一个tr? – 2012-03-20 10:48:47

+0

@LockTar我添加了主视图。 – Stijn 2012-03-20 10:54:27

回答

1

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

0

只要确保你的代码看起来是这样的:

<table> 

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

</table> 

好像你已经在你尝试添加更多的TR标签开放tr标签。如果您的表格中已经有tr标签,请确保它们在循环启动之前全部关闭:

+0

我没有在其他地方打开'tr'标签。局部视图没有'table'标记,因为我使用无限滚动来通过AJAX加载更多行。 – Stijn 2012-03-20 10:55:38

+0

好的我在提交答案后看到了更新后的代码。 – 2012-03-20 11:02:49

+0

我通过HTML5验证器在线运行了您的代码,并验证其正确性。所以我只是假设这是Visual Studio抱怨的事情。你究竟在哪里得到这个错误?在设计师? – 2012-03-20 11:14:41