首页 > 解决方案 > ASP.NET Core 路由前缀

问题描述

我正在开发一个 ASP.NET Core 应用程序。我的应用程序在 url 上使用 NGinx 托管http://somedomain.com/MyApplication

我需要将所有请求路由到 prefix /MyApplication

我对控制器操作响应的问题重定向到somedomain.com,而不是somedomain.com/MyApplication

有没有办法配置路由以使用前缀/MyApplication

UPD:例如

        [HttpGet]
        [AllowAnonymous]
        public async Task<IActionResult> Login(string returnUrl = null)
        {
            // Clear the existing external cookie to ensure a clean login process
            await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);

            ViewData["ReturnUrl"] = returnUrl;
            return View();
        }

重定向到 somedomain.com,但我需要 somedomain.com/MyApplication

标签: c#.netasp.net-corerouting

解决方案


您可以像这样使用PathBase中间件Mvc

partial class Startup {

    public void Configure(
        IApplicationBuilder app,
        IHostingEnvironment env
    ) {
        app.UsePathBase(new PathString("/MyApplication"));
        app.UseMvc();
    }

}

使用PathBase中间件,无需更改任何 mvc 代码,它会自动添加到请求和响应中。

请参考https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.builder.usepathbaseextensions.usepathbase?view=aspnetcore-2.2


推荐阅读