You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor(.NET 9.0)动态Meta标签编码不一致问题求助

解决Blazor .NET 9中Meta Title非英文字符被HTML编码的问题
  • 问题根源:Blazor对字符串类型的HTML属性绑定默认会执行HTML编码,所以泰文这类非英文字符会被转成แขก这种实体编码;而og:title能正常显示,大概率是渲染逻辑的特殊处理,但核心问题出在字符串绑定的自动编码机制上。

  • 解决步骤:

    1. 修改MainLayout.razor.cs中MetaTitle的类型为MarkupString:
      public MarkupString MetaTitle { get; set; }
      
    2. 赋值时直接创建MarkupString实例,无需额外编码:
      this.MetaTitle = new MarkupString($"{this.WebsiteTitle} - {sBreadcrumbTitle}");
      
    3. 页面中的绑定代码保持不变即可:
      <meta name="title" content="@this.MetaTitle">
      <meta property="og:title" content="@this.MetaTitle">
      
  • 注意事项:MarkupString会告知Blazor内容是安全的,不会再做编码处理,所以要确保sBreadcrumbTitle里没有恶意HTML代码,避免XSS风险。

内容的提问来源于stack exchange,提问作者user97492

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 05:53:21