当前位置: 首页 > news >正文

第三章 组件(8)- 控制 <head> 内容

Razor 组件可以修改页面的 HTML <head> 元素内容,包括页标题<title>元素、元数据<meta>元素、<base><link>等。

HeadOutlet组件

在Blazor中,可以通过HeadOutlet组件来控制HTML中的 <head> 内容。

HeadOutlet组件用于<head>元素内,用来渲染子组件中,PageTitleHeadContent组件提供的内容。

例如在BlazorServer项目模板的App.razor中,可以看到如下代码:

......
<head>
    ......
    <HeadOutlet />
</head>
......

Blazor WebAssembly中的HeadOutlet

在客户端的项目(Blazor WebAssembly)应用中,HeadOutlet组件在 Program 文件中被添加到客户端。

builder.RootComponents.Add<HeadOutlet>("head::after");

指定 ::after 伪选择器后,根组件的内容将追加到现有标头内容,而不是替换内容。 这使客户端项目可以在 wwwroot/index.html 中保留静态标头内容,而无需重复应用的 Razor 组件中的内容。

PageTitle和HeadContent组件

如果想要设置<title>元素,可以将<title>的内容,放置在Razor的 PageTitle 组件内,这样可以将其作为 HTML <title> 元素传递给 HeadOutlet 组件进行渲染。

如果想要设置<head>元素中除了<title>外的其他元素,可以将其放置在Razor的HeadContent组件中,其会将元素传递给HeadOutlet 组件进行渲染。

  • ControlHeadContent.razor

    @page "/control-head-content"
    
    <PageTitle>@title</PageTitle>
    
    <h1>Control <head> Content Example</h1>
    
    <p>
        Title: @title
    </p>
    
    <p>
        Description: @description
    </p>
    
    <HeadContent>
        <meta name="description" content="@description">
    </HeadContent>
    
    @code {
        private string description = "This description is set by the component.";
        private string title = "Control <head> Content";
    }
    

默认标题和布局标题

可以在App.razor或布局组件中使用PageTitle组件,如果同时在App.razor、布局组件和组件内部使用了PageTitle组件,那么其优先级为组件标题>布局标题>默认标题。

  • App.razor

    ......
    
    <head>
        ......
        <HeadOutlet/>
        <PageTitle>Page Title</PageTitle>
    </head>
    
    ......
    

相关文章:

  • PLC中位、字、双字的关系
  • jdk21虚拟线程
  • 每天五分钟深度学习pytorch:使用Inception模块搭建GoogLeNet模型
  • 【人工智能】蓝耘智算平台盛大发布DeepSeek满血版:开创AI推理体验新纪元
  • 第47天:Web开发-JavaEE应用JNDI注入RMI服务LDAP服务DNS服务高版本限制绕过
  • Content-Type类型总结(安全)
  • Python的算数运算、逻辑运算和分支语句
  • 实时性保障方案
  • 基于SpringBoot的民宿管理系统的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • C语言多人聊天室 ---chat(客户端聊天)
  • 蓝桥杯学习笔记03-滑动窗口不定长(最长/最大)
  • Python代码片段-断点任务
  • Linux常见问题
  • 算法日记27:完全背包(DFS->记忆化搜索->倒叙DP->顺序DP->空间优化)
  • Unity Android SDK 升级、安装 build-tools、platform-tools
  • 【HeadFirst系列之HeadFirstJava】第5天之超强力方法 —— 从战舰游戏到循环控制
  • 【C语言】指针(6)
  • 通俗理解什么是云原生?
  • Spring Boot 3 集成 RabbitMQ 实践指南
  • 《操作系统 - 清华大学》 8 -6:进程管理:进程状态变化模型
  • 印官员称巴基斯坦在克什米尔实控线附近开火已致7死38伤
  • 从黄土高原到黄浦江畔,澄城樱桃品牌推介会明日在上海举办
  • 金价大反攻,国内金饰价格涨回千元,能否重返巅峰?
  • 市场监管总局发布《城镇房屋租赁合同(示范文本)》
  • “鱼米之乡”江苏兴化的产业哲学:以融合与创新重构价值链条
  • 五一假期上海虹桥边检站出入境近4.7万人次,韩国入境旅客同比增118%