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

标签 asp.net asp.net-mvc partial-views

我是 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/

相关文章:

c# - 局部 View 是否总是需要从顶层 View 传递的模型?

asp.net - 即使在防火墙设置中将选项设置为 yes,Azure SQL Server 防火墙也不允许连接操作

c# - Entity Framework - 数据库和模型列/类型不匹配 - 映射选项

sql-server - 使用具有复合键和更新级联功能的 SQL Server 数据库进行 ASP.NET MVC 编码

c# - 使用 EF 在 MVC 4 局部 View 上显示相关实体

javascript - 模板未加载

asp.net-mvc - ASP.NET MVC - 下拉列表选择 - 部分 View 和模型绑定(bind)

javascript - 如果用户不提供任何响应则关闭弹出窗口

c# - 是否可以在有人连接之前在 WCF 服务中执行启动代码?

c# - 如何链接到 ASP.NET MVC 中的可下载文件?