在MVC视图中,使用节和文章而不是表有什么好处?

时间:2019-04-26 10:27:49

标签: html .net-core

我正在查看一个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上下文中)。

在表上使用文章和节有什么好处?

更新

我是从价格比较网站上获取的:

enter image description here

您是否希望上图中的数据以表的形式组织?即有六列。它看起来像是divs。

1 个答案:

答案 0 :(得分:1)

用于生成HTML的工具无关紧要(因此,您使用ASP.NET MVP视图的事实就不重要了。

HTML是一种语义标记语言。视觉浏览器使用它来呈现人们可以用眼睛阅读的显示。屏幕阅读器会消耗它,以通过声音传达信息。搜索引擎使用它来帮助人们查找内容。其他数据处理工具会出于各种目的使用它。

语义可以用来描述内容是什么,工具可以将该信息用于各种目的。

因此,应该选择要使用的元素以最好地反映内容的语义,以便工具可以充分利用该数据。

在您的示例中,您的内容看起来不像是分成几部分的一系列文章,因此-对于问题中的内容-使用这些元素将是错误的,并且只会有缺点

如果您具有表格数据,则使用表格

仅在内容包含文章和版块时使用文章和版块元素。