gpt4 book ai didi

c# - .net core 重定向到路由结果将 %2f 添加到 url

转载 作者:行者123 更新时间:2023-12-04 01:51:35 25 4
gpt4 key购买 nike

这是我的路由项:

context.Result = new RedirectToRouteResult(new RouteValueDictionary(new {area="Identity", controller = "Account / Login", action = "Index" }));

当应用程序启动时,这是我在 url 中得到的:

http://localhost:62527/Identity/Account%2FLogin



如何从我的网址中删除 %2f?

最佳答案

尝试从您的 RouteValueDictionary 生成 URL 时, ASP.NET Core 编码 /%2F仅仅因为它是 URL segment 的一部分并具有特殊含义(它是段分隔符)。
Account/Login在此上下文中作为 Controller 名称无效,仅因为 /作为 C# 标识符的一部分无效(即 Accounts/LoginController 作为类名无效)。

当您尝试路由到 Account/Login 时在 Identity区域,我现在假设您正在使用 ASP.NET Core Identity 的默认 UI,并且您打算路由到 /Account/Login默认情况下的 Razor 页面 Identity区域。为了做到这一点,至少有几个选择:

  • 设置 page路由值而不是 controller路由值:
    context.Result = new RedirectToRouteResult(
    new RouteValueDictionary(new { area = "Identity", page = "/Account/Login" }));
  • 使用 RedirectToPageResult而不是 RedirectToRouteResult :
    context.Result = new RedirectToPageResult("/Account/Login", new { area = "Identity" });

  • 我建议使用 RedirectToPageResult选项,因为它有一个更明确的意图,即这是针对 Razor 页面而不是 MVC Controller 。

    关于c# - .net core 重定向到路由结果将 %2f 添加到 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52773227/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com