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

ASP.NET Core 6.0 MVC搭建Identity页面后无注册登录链接问题

解决ASP.NET Core 6.0 MVC中Identity登录/注册链接不显示的问题

1. 补充Program.cs中的路由映射配置

你的现有代码缺少Identity Razor页面的路由映射,这是Identity页面无法被访问、导航链接无法生成的核心原因之一。需要在MVC默认路由配置后添加MapRazorPages():

builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
        .AddEntityFrameworkStores<DbContext>();
var app = builder.Build();

app.UseRouting();
app.UseAuthentication(); 
app.UseAuthorization();

app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
// 添加该行,映射Identity的Razor页面路由
app.MapRazorPages();

2. 在MVC布局页中添加登录/注册导航链接

默认MVC项目的布局页(Views/Shared/_Layout.cshtml)不会自动包含Identity的导航入口,需要手动在导航区域添加以下代码(示例嵌入到navbar的列表中):

<ul class="navbar-nav">
    @if (User.Identity.IsAuthenticated)
    {
        <li class="nav-item">
            <a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Manage/Index">Hello @User.Identity.Name!</a>
        </li>
        <li class="nav-item">
            <form asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Action("Index", "Home")">
                <button type="submit" class="nav-link btn btn-link text-dark">Logout</button>
            </form>
        </li>
    }
    else
    {
        <li class="nav-item">
            <a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Register">Register</a>
        </li>
        <li class="nav-item">
            <a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Login">Login</a>
        </li>
    }
</ul>

3. 确认Identity页面的目录结构

确保你的Register.cshtml、Login.cshtml等页面位于Areas/Identity/Pages/Account目录下,且页面顶部的@page指令无错误,示例:

@page
@model RegisterModel
@{
    ViewData["Title"] = "Register";
}

完成以上操作后重新运行项目,首页导航栏即可显示登录/注册相关链接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:05:05