使用PathBase时重定向

时间:2019-01-08 08:26:58

标签: c# asp.net-core asp.net-core-mvc

我已将PathBase定义为

new PathString("/test_environment/");

然后我在https://localhost:5001/test_environment/Login

,登录后它将重定向到/MyController/

一切正常-到达控制器及其方法并正确提供数据,但是我在浏览器中的网址是:

https://localhost:5001/MyController/

工作正常,但是/test_environment/到哪里去了?

MyMethod中的

MyController有一个 [Route("/")]属性

1 个答案:

答案 0 :(得分:1)

对于app.UsePathBase,它添加了一个中间件,该中间件从请求路径中提取指定的路径库,并将其追加到请求路径库中。

对于[Route("/")],如果您使用https://localhost:5001/,它将生成请求RedirectToAction

您获得了https://localhost:5001/MyController/,我假设您使用Redirect来重定向URL。

请尝试以下Login中的代码。

public IActionResult Login()
{
    if (Request.Path.StartsWithSegments("/test_environment"))
    {
        return Redirect("/");
    }
    else
    {
        return Redirect("/test_environment/");
    }
}