【问题标题】:Razor Pages routing issue in ASP.NET Core MVC viewASP.NET Core MVC 视图中的 Razor Pages 路由问题
【发布时间】:2020-10-27 08:49:07
【问题描述】:

我正在使用 ASP.NET Core 3.1 标识。我正在使用锚标记登录并在布局部分中注册

<a class="nav-link" asp-area="Identity" asp-page="/Account/Register">Register</a>
<a class="nav-link" asp-area="Identity" asp-page="/Account/Login">Login</a>

效果很好,但是当我在其他 MVC 视图中使用链接时出现问题,例如在仪表板控制器 Index 视图中

<a id="external-account" asp-area="Identity" asp-page="/Account/Manage/ExternalLogin" asp-route-returnUrl="@Context.Request.Path">
    <div>Verify with @provider.DisplayName</div>
</a>

生成错误的链接地址为

<a id="external-account" href="/Dashboard?returnUrl=%2FDashboard&amp;area=Identity&amp;page=%2FAccount%2FManage%2FExternalLogin">
 google</a>

应该是这样的

<a id="external-account" href="/Identity/%2FAccount/Manage/ExternalLogin?returnUrl=/Dashboard">google</a>

【问题讨论】:

    标签: c# asp.net-mvc asp.net-core asp.net-identity razor-pages


    【解决方案1】:

    看看启动 - 你应该类似于下面指定登录路径的东西 - 我认为这是用于在生成 HTML 元素时生成路径

            services.ConfigureApplicationCookie(options =>
            {
                // Cookie settings
                options.Cookie.HttpOnly = true;
                options.ExpireTimeSpan = TimeSpan.FromMinutes(5);
    
                options.LoginPath = "/Identity/Account/Login";
                options.AccessDeniedPath = "/Identity/Account/AccessDenied";
                options.SlidingExpiration = true;
            });
    

    【讨论】:

    • 我认为这段代码与我的问题没有任何关系,如果它确实请我理解它。因为我没有在其中找到任何外部登录选项。
    • 我认为与 asp.net 核心中的路由表有关,但我找不到与我的问题相关的任何内容。如果您有任何建议
    • 在您的项目中搜索“仪表板”并查看它的设置位置 - 某处可能有一些路由设置设置了此错误路径
    • 谢谢我解决了我自己我是一个路由问题,而且我们需要以表格形式发送帖子请求,而不是链接(弓箭手标签)
    • 干得好 - 获取/发布 - 我仍然自己做。幸运的是,使用 Bootstrap 只需将锚点更改为按钮
    猜你喜欢
    • 2021-05-04
    • 2018-02-17
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 2022-07-14
    相关资源
    最近更新 更多