项目

ASP.NET Core MVC / Razor Pages:页面头部管理

IPageLayout 服务可用于设置页面标题、选定菜单项以及页面的面包屑导航项。由主题负责在页面上呈现这些内容。

IPageLayout 服务

IPageLayout 可注入到任何页面/视图中,用于设置页面头部属性。

页面标题

可按以下示例设置页面标题:

@inject IPageLayout PageLayout
@{
    PageLayout.Content.Title = "图书列表";
}
  • 页面标题会设置为 HTML title 标签内容(同时包含品牌/应用名称
  • 主题可能会在页面内容之前呈现页面标题(基础主题未实现此功能)

面包屑导航

基础主题当前未实现面包屑导航功能

LeptonX Lite 主题支持面包屑导航

可通过 PageLayout.Content.BreadCrumb 添加面包屑导航项

示例:将语言管理添加到面包屑项

PageLayout.Content.BreadCrumb.Add("语言管理");

主题随后会渲染面包屑导航。示例渲染结果如下:

面包屑示例

  • 默认会显示首页图标。设置 PageLayout.Content.BreadCrumb.ShowHomefalse 可隐藏
  • 默认会将当前页面名称(从 PageLayout.Content.Title 获取)添加为最后一项。设置 PageLayout.Content.BreadCrumb.ShowCurrentfalse 可隐藏

您添加的任何项目都会插入在首页和当前页面项之间。可根据需要添加任意数量的项目。BreadCrumb.Add(...) 方法接收三个参数:

  • text:面包屑项显示的文本
  • url(可选):用户点击面包屑项时跳转的URL
  • icon(可选):与文本一同显示的图标类(如 Font-Awesome 的 fas fa-user-tie

选定菜单项

基础主题当前未实现选定菜单项功能,因为该功能不适用于顶部菜单(这是基础主题目前唯一的菜单选项)

LeptonX Lite 主题支持选定菜单项

可设置与此页面相关的菜单项名称:

PageLayout.Content.MenuItemName = "BookStore.Books";

菜单项名称应与使用导航/菜单系统定义的唯一菜单项名称匹配。这种情况下,期望主题能在主菜单中将该菜单项设置为"激活"状态。

在本文档中