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

如何在ASP.NET Core 10控制器式Web API设置默认端点

ASP.NET Core 10.0 Web API 设置根路径默认跳转至 /about 的实现方法

给你三种可行的实现方式,按需选择:

方法一:直接在路由配置中添加根路径重定向

在Program.cs的路由配置环节,新增针对根路径/的请求处理逻辑,直接重定向到/about:

var builder = WebApplication.CreateBuilder(args);

// 注册控制器服务
builder.Services.AddControllers();

var app = builder.Build();

// 其他中间件配置(如HTTPS重定向、授权等)
app.UseHttpsRedirection();
app.UseAuthorization();

// 添加根路径跳转规则
app.MapGet("/", context =>
{
    return context.Response.Redirect("/about");
    // 若需永久重定向(SEO场景常用),可改为:
    // return context.Response.Redirect("/about", permanent: true);
});

// 映射控制器路由
app.MapControllers();

app.Run();

方法二:在AboutController中添加根路径Action

如果希望跳转逻辑和控制器绑定,可在AboutController里新增一个对应根路径的Action,负责跳转:

[ApiController]
[Route("[controller]")]
public class AboutController : ControllerBase
{
    // 原有/about端点逻辑
    [HttpGet]
    public IActionResult GetAboutInfo()
    {
        return Ok(new { ApiVersion = "1.0.0", Description = "API基础信息查询端点" });
    }

    // 根路径跳转Action
    [HttpGet("/")]
    public IActionResult RedirectToAbout()
    {
        // 跳转到当前控制器的GetAboutInfo方法
        return RedirectToAction(nameof(GetAboutInfo));
        // 也可以直接指定URL跳转:return Redirect("/about");
    }
}

方法三:自定义中间件处理全局根路径请求

如果需要更灵活的控制(比如根据环境变量决定是否跳转),可以自定义中间件实现:

// 自定义中间件类
public class RootRedirectMiddleware
{
    private readonly RequestDelegate _next;

    public RootRedirectMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        // 判断是否为根路径请求
        if (context.Request.Path == "/")
        {
            // 执行重定向
            context.Response.Redirect("/about");
            return;
        }

        // 非根路径请求,继续执行后续中间件
        await _next(context);
    }
}

// 在Program.cs中注册中间件
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers();

var app = builder.Build();

app.UseHttpsRedirection();
// 注意中间件注册顺序,建议放在授权中间件之前
app.UseMiddleware<RootRedirectMiddleware>();
app.UseAuthorization();

app.MapControllers();

app.Run();

注意事项

  • 确保/about端点已正确配置并可正常访问
  • 重定向默认使用302临时状态码,若需SEO友好的永久重定向,可在Redirect方法中传入permanent: true参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 17:42:09