我正在查看一个MVC视图,如下所示:
<div class="orders">
<partial name="_Header" model="headerList"/>
<div class="container">
<article class="orders-titles row">
<section class="orders-title col-2">Order number</section>
<section class="orders-title col-4">Date</section>
<section class="orders-title col-2">Total</section>
<section class="orders-title col-2">Status</section>
<section class="orders-title col-2"></section>
</article>
@if (Model != null && Model.Any())
{
foreach (var item in Model)
{
<article class="orders-items row">
<section class="orders-item col-2">@Html.DisplayFor(modelItem => item.OrderNumber)</section>
<section class="orders-item col-4">@Html.DisplayFor(modelItem => item.Date)</section>
<section class="orders-item col-2">@Html.DisplayFor(modelItem => item.Total)</section>
<section class="orders-item col-2">@Html.DisplayFor(modelItem => item.Status)</section>
<section class="orders-item col-1">
<a class="orders-link" asp-controller="Order" asp-action="Detail" asp-route-orderId="@item.OrderNumber">Detail</a>
</section>
<section class="orders-item col-1">
@if (item.Status.ToLower() == "submitted")
{
<a class="orders-link" asp-controller="Order" asp-action="cancel" asp-route-orderId="@item.OrderNumber">Cancel</a>
}
</section>
</article>
}
}
</div>
</div>
我已经看到许多其他类似的例子。我通常会使用带有<thead>
和<tbody>
标签的表格。
因此,我相信我缺少基本的东西。我相信使用这两种方法都会有所取舍。使用文章和节代替表格有什么好处和局限性?
我花了几个小时在谷歌上搜索,并且发现了很多信息来解释什么是章节和文章,例如这里:https://www.w3schools.com/tags/tag_section.asp和这里:Should <sections> have <articles> or should <articles> have <sections>?。但是,我没有发现任何东西,这说明了何时应该使用它们(在MVC View上下文中)。
在表上使用文章和节有什么好处?
更新
我是从价格比较网站上获取的:
您是否希望上图中的数据以表的形式组织?即有六列。它看起来像是divs。
答案 0 :(得分:1)
用于生成HTML的工具无关紧要(因此,您使用ASP.NET MVP视图的事实就不重要了。
HTML是一种语义标记语言。视觉浏览器使用它来呈现人们可以用眼睛阅读的显示。屏幕阅读器会消耗它,以通过声音传达信息。搜索引擎使用它来帮助人们查找内容。其他数据处理工具会出于各种目的使用它。
语义可以用来描述内容是什么,工具可以将该信息用于各种目的。
因此,应该选择要使用的元素以最好地反映内容的语义,以便工具可以充分利用该数据。
在您的示例中,您的内容看起来不像是分成几部分的一系列文章,因此-对于问题中的内容-使用这些元素将是错误的,并且只会有缺点
如果您具有表格数据,则使用表格。
仅在内容包含文章和版块时使用文章和版块元素。