.NET Core分部视图PartialView用法

什么时候用用分部视图?

分部视图PartialView是执行下列操作的有效方式:

  • 将大型标记文件分解为更小的组件。

  • 在由多个逻辑部分组成的大型复杂标记文件中,在分部视图中处理隔开的每个部分是有利的。 标记文件中的代码是可管理的,因为标记仅包含整体页面结构和对分部视图的引用。

  • 减少跨标记文件中常见标记内容的重复。

当在标记文件中使用相同的标记元素时,分部视图会将重复的标记内容移到一个分部视图文件中。 在分部视图中更改标记后,它会更新使用该分部视图的标记文件呈现的输出。

不应使用分部视图来维护常见布局元素。 常见布局元素应在 _Layout.cshtml 文件中指定。

请勿使用需要复杂呈现逻辑或代码执行来呈现标记的分部视图。 使用视图组件而不是分部视图。

在页面中使用分部视图

直接使用partial标签

1

2

3

4

5

<partial name="_PartialName" />

//当存在文件扩展名时,标记帮助程序会引用分部视图,该视图必须与调用分部视图的标记文件位于同一文件夹中:

<partial name="_PartialName.cshtml" />

<partial name="~/Pages/Folder/_PartialName.cshtml" />

<partial name="../Account/_PartialName.cshtml" />

Html.PartialAsync()使用分部视图

1

2

3

4

@await Html.PartialAsync("_PartialName")

//当存在文件扩展名时,HTML 帮助程序会引用分部视图,该视图必须与调用分部视图的标记文件位于同一文件夹中:

@await Html.PartialAsync("_PartialName.cshtml")

@await Html.PartialAsync("~/Pages/Folder/_PartialName.cshtml")

分部视图发现

如果按名称(无文件扩展名)引用分部视图,则按所述顺序搜索以下位置:

Razor 页面

  • 当前正在执行页面的文件夹

  • 该页面文件夹上方的目录图

  • /Shared

  • /Pages/Shared

  • /Views/Shared

MVC

  • /Areas/<Area-Name>/Views/<Controller-Name>

  • /Areas/<Area-Name>/Views/Shared

  • /Views/Shared

  • /Pages/Shared

以下约定适用于分部视图发现:

当分部视图位于不同的文件夹中时,允许使用具有相同文件名的不同分部视图。

当按名称(无文件扩展名)引用分部视图且分部视图出现在调用方的文件夹和 文件夹中时,调用方文件夹中的分部视图会提供分部视图。 如果调用方文件夹中不存在分部视图,则会从 文件夹中提供分部视图。 文件夹中的分部视图称为“共享分部视图”或“默认分部视图”。

分部视图可以 链接,如果循环引用不是由调用构成,分部视图可以 — 调用另一分部视图。 相对路径始终相对于当前文件,而不是相对于文件的根视图或父视图。

PartialView传递数据示例

在Pages/Partial目录下创建分部视图_List.cshtml

1

2

3

4

@model IndexModel

<ul>

<li>@Model.H1</li>

</ul>

在Index.cshtml中使用分部视图

1

2

3

4

5

6

7

@page

@model IndexModel

@{

    ViewData["Title"] = "Home page";

}

<partial name="~/Pages/Partial/_List.cshtml" for="@Model" />

@await Html.PartialAsync("~/Pages/Partial/_List.cshtml", Model)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值