首页 > 解决方案 > 在 MVC 视图中使用 Sections 和 Articles 而不是表有什么好处?

问题描述

我正在查看一个 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>and<tbody>标签来使用表格。

因此,我相信我缺少一些基本的东西。我相信使用这两种方法都会有权衡。使用文章和部分而不是表格有什么好处和限制?

我花了几个小时在谷歌上搜索这个,我发现了很多解释什么是章节和文章的信息,例如这里:https ://www.w3schools.com/tags/tag_section.asp和这里:应该 <sections> 有 <articles> 还是应该<articles> 有 <sections> 吗?. 但是,我没有找到任何东西,这解释了我应该何时使用它们(在 MVC 视图上下文中)。

使用文章和部分而不是表格有什么好处?

更新

我从一个价格比较网站上拿了这个:

在此处输入图像描述

您是否希望上图中的数据在表格中结构化?即有六列。它似乎被构造为 div。

标签: html.net-core

解决方案


您用来生成 HTML 的工具是无关紧要的(因此您使用 ASP.NET MVP 视图的事实是无关紧要的)。

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

语义用于描述内容什么,工具将这些信息用于各种目的。

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

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

如果您有表格数据,请使用表格

仅当您的内容包含文章和部分时才使用文章和部分元素。


推荐阅读