我是 Razor MVC 的新手(正在制作我的第一个真正的项目),我从 Microsoft 文档 HERE 中看到你不应该使用 @Html.Partial
,但使用 @await Html.PartialAsync
,或 <partial>
HTML 标签。不幸的是,这些都不适合我。
我的一个 View 中有以下代码。 foreach 循环中的第一行( @Html.Partial
)呈现部分 View 。接下来的 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核心项目。
关于asp.net - 无法在 MVC 中将 @Html.Partial 更改为 <partial> 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53018419/