无法在 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 核心项目。
我是 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 核心项目。