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

ASP.NET Core 6中无Startup类时如何注册MVC服务?

在ASP.NET Core 6+中注册MVC服务与中间件

在ASP.NET Core 6及后续版本中,框架采用了最小API模型,移除了Startup类,所有服务注册和中间件配置都直接在Program.cs文件中完成,替代原Startup类的ConfigureServices和Configure方法。

1. 注册MVC服务

原来在Startup.ConfigureServices中调用的AddMvc(),现在直接通过WebApplicationBuilder的Services属性完成注册:

var builder = WebApplication.CreateBuilder(args);

// 注册完整MVC服务(包含控制器、视图、Razor页面等,等同于原AddMvc())
builder.Services.AddMvc();

// 若仅需控制器+视图,可精准注册:
// builder.Services.AddControllersWithViews();

// 若仅需API控制器,可使用:
// builder.Services.AddControllers();

2. 添加MVC中间件与路由

原来的UseMvcWithDefaultRoute(),现在通过WebApplication实例的端点映射实现:

var app = builder.Build();

// 环境判断(模板默认包含,非必须)
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

// 启用路由(框架默认已集成,显式写出更清晰)
app.UseRouting();

app.UseAuthorization();

// 添加默认MVC路由(等同于原UseMvcWithDefaultRoute())
app.MapDefaultControllerRoute();

// 若需自定义路由,可替换为:
// app.MapControllerRoute(
//     name: "default",
//     pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

完整Program.cs示例

var builder = WebApplication.CreateBuilder(args);

// 注册MVC服务
builder.Services.AddMvc();

var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();

// 映射默认MVC路由
app.MapDefaultControllerRoute();

app.Run();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 03:40:00