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

如何在MudBlazor布局中访问AppInfo以显示应用信息及版本?

解决Blazor布局中显示应用信息及构建版本的问题

错误原因分析

你之前使用@app.utilities的语法是错误的,Blazor中不存在这种引用方式:

  • 引用命名空间需要用@using指令,且可添加多个(每个单独一行,不会报“仅可使用一个命名空间”错误)
  • 访问服务类需要用@inject进行依赖注入,而非自定义的@app前缀

具体解决方案

方案1:通过依赖注入访问AppInfo(推荐,适合动态获取信息)

  1. 创建AppInfo服务类
    在项目中新建一个类(比如放在Utilities目录下):

    namespace YourAppName.Utilities;
    
    public class AppInfo
    {
        // 应用名称
        public string AppName { get; set; } = "我的Blazor应用";
        
        // 构建版本,可从程序集自动获取
        public string BuildVersion => typeof(AppInfo).Assembly.GetName().Version?.ToString() ?? "未知版本";
    }
    
  2. 注册服务
    在Program.cs中将AppInfo注册为单例服务:

    builder.Services.AddSingleton<AppInfo>();
    
  3. 在布局中注入并使用
    在你的布局组件(比如MainLayout.razor)顶部添加注入指令,然后在页面中调用:

    @inject YourAppName.Utilities.AppInfo AppInfo
    
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <!-- 原有head内容 -->
    </head>
    <body>
        <!-- 在lang标签下方添加应用信息 -->
        <div class="app-info">
            <p>应用名称:@AppInfo.AppName | 构建版本:@AppInfo.BuildVersion</p>
        </div>
    
        <!-- 原有页面内容 -->
        <div class="page">
            <div class="sidebar">
                <NavMenu />
            </div>
            <main>
                <!-- ... -->
            </main>
        </div>
    </body>
    </html>
    

方案2:使用静态类(适合固定或静态获取的信息)

如果应用信息是固定的,也可以用静态类直接访问:

  1. 创建静态AppInfo类

    namespace YourAppName.Utilities;
    
    public static class AppInfo
    {
        public static string AppName => "我的Blazor应用";
        public static string BuildVersion => typeof(AppInfo).Assembly.GetName().Version?.ToString() ?? "未知版本";
    }
    
  2. 在布局中引用并使用
    在布局顶部添加命名空间引用,直接调用静态属性:

    @using YourAppName.Utilities
    
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <!-- 原有head内容 -->
    </head>
    <body>
        <div class="app-info">
            <p>应用名称:@AppInfo.AppName | 构建版本:@AppInfo.BuildVersion</p>
        </div>
    
        <!-- 原有页面内容 -->
    </body>
    </html>
    

注意事项

  • 确保YourAppName替换为你实际的项目命名空间
  • 如果需要从配置文件读取应用名称,可在AppInfo构造函数中注入IConfiguration来获取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:35:17