无法在 MVC 中将 @Html.Partial 更改为 <partial> 标记

Unable to change @Html.Partial to <partial> tag in MVC

我是 Razor MVC 的新手(制作我的第一个真正的项目),我从 Microsoft 文档 HERE 中看到您不应该使用 @Html.Partial,但可以使用 @await Html.PartialAsync,或 <partial> HTML 标签。不幸的是,这些都不适合我。

我的一个视图中有以下代码。 foreach 循环中的第一行(@Html.Partial)呈现局部视图。接下来的 4 行每行什么都不渲染(我分别尝试了每行)。根据文档,我的理解是第二行 (<partial name="_InfoCard.cshtml" model="cardModel" />) 等同于工作行。

有人可以告诉我我做错了什么吗?提前致谢!

注意:我不确定 ASP.NET Core 2.1 和 .NET Framework 附带的任何东西之间有什么区别。当我做这个项目时,我从 Visual Studio Professional 2017 开始,选择了 New Project ➔ ASP.NET Web Application (.NET Framework) ➔ MVC,所以我 认为 我应该有足够的最新版本来运行它。 .. 我有以下内容:

Microsoft.AspNet.Mvc v5.2.4,
Microsoft.AspNet.Razor v3.2.4,
Microsoft.AspNet.WebPages v3.2.4

再次感谢您!

@using RazerMagazineDashboard.Models
@model RazerMagazineDashboard.Models.SummaryModel
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }

@{
    foreach (InfoCardModel cardModel in @Model.CardModels)
    {
        @Html.Partial("~/Views/Shared/_InfoCard.cshtml", cardModel); @* Works well *@

        <partial name="_InfoCard.cshtml" model="cardModel" /> @* Renders nothing *@
        <partial name="_InfoCard.cshtml" model=@cardModel /> @* Renders nothing *@
        <partial name="~/Views/Shared/_InfoCard.cshtml" model="cardModel" /> @* Renders nothing *@
        <partial name="~/Views/Shared/_InfoCard.cshtml" model=@cardModel /> @* Renders nothing *@
    }
}

这是ASP.NET mvc 5 方法

@Html.Partial("~/Views/Shared/_InfoCard.cshtml", cardModel); @* Works well *@

这是 .NET 核心方法

<partial name="_InfoCard.cshtml" model="cardModel" /> @* Renders nothing *@
<partial name="_InfoCard.cshtml" model=@cardModel /> @* Renders nothing *@
<partial name="~/Views/Shared/_InfoCard.cshtml" model="cardModel" /> @* Renders nothing *@
<partial name="~/Views/Shared/_InfoCard.cshtml" model=@cardModel /> @* Renders nothing *@

所以我认为您的项目是使用 .NET 框架构建的 MVC 5,而不是 .NET 核心项目。