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

ASP.NET Core 5 MVC迁移后如何在页脚获取并展示版本号

ASP.NET Core 5 MVC 页脚版本号实现方案

ASP.NET Core 中已移除 WebViewPage 类,以下两种方案可以实现你原来的需求,按需选择即可:

方案1:视图注入(最简实现,仅需版本号优先选这个)

不需要修改视图基类,直接在布局页读取版本信息即可:

  • 直接在 _Layout.cshtml 顶部添加以下代码读取程序集版本:
@{
    // 读取入口程序集的版本号
    var appVersion = System.Reflection.Assembly.GetEntryAssembly()?.GetName().Version?.ToString() ?? "未知版本";
}
  • 页脚位置直接输出即可:
<footer>
    <span>系统版本:@appVersion</span>
</footer>

如果你的版本号存储在 appsettings.json 中,可按以下步骤实现:

  1. 在 appsettings.json 中添加版本配置:
{
  "AppConfig": {
    "Version": "1.3.5.0"
  }
}
  1. 在 Startup.cs 的 ConfigureServices 方法中注册配置:
services.Configure<AppConfig>(Configuration.GetSection("AppConfig"));
  1. 新增配置类 AppConfig:
public class AppConfig
{
    public string Version { get; set; }
}
  1. 在 _Layout.cshtml 中注入配置并使用:
@inject Microsoft.Extensions.Options.IOptions<AppConfig> AppConfigOpts
<footer>
    <span>系统版本:@AppConfigOpts.Value.Version</span>
</footer>

方案2:自定义Razor视图基类(适配原有WebViewPage的用法,适合有大量公共属性迁移的场景)

如果原来的WebViewPage中还有其他公共属性需要迁移,你可以自定义Razor视图基类完全替代原来的实现:

  1. 新增自定义基类,继承 Microsoft.AspNetCore.Mvc.Razor.RazorPage<TModel>:
using System.Reflection;
using Microsoft.AspNetCore.Mvc.Razor;

public abstract class CustomRazorPage<TModel> : RazorPage<TModel>
{
    // 公共版本号属性,和你原来WebViewPage中的定义一致
    public string AppVersion { get; } = Assembly.GetEntryAssembly()?.GetName().Version?.ToString() ?? "未知版本";
    
    // 其他原来在WebViewPage中的公共属性、方法都可以在这里添加
}
  1. 在 /Views/_ViewImports.cshtml 中全局注册自定义基类,替换默认基类:
@inherits CustomRazorPage<TModel>
  1. 直接在所有视图(包括_Layout.cshtml)中使用 @AppVersion 即可,用法和你之前完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:24:03