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

ASP.NET Core 7 Razor Pages模板项目路由默认失效,出现404错误

ASP.NET Core 7 Razor Pages 始终返回404 "Page not found" 问题排查

我通过Visual Studio 2022创建了未启用MVC、未添加身份验证的ASP.NET Core 7 Razor Pages模板项目,Program.cs仅保留核心配置代码。运行项目后无论操作如何,始终显示“Page not found”404错误。已确认Index.cshtml与Index.cshtml.cs文件均位于Pages文件夹中(文件位置截图:文件位置截图)

相关代码如下:

Program.cs

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();

//builder.Services.AddRazorPages().AddRazorPagesOptions(options =>
//{
//    options.RootDirectory = "/";
//});

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapRazorPages();

app.Run();

Index.cshtml

@page 
@model IndexModel

@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">Welcome</h1>
    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>

Index.cshtml.cs

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace RazorPagesWebApp.Pages
{
    public class IndexModel : PageModel
    {
        private readonly ILogger<IndexModel> _logger;

        public IndexModel(ILogger<IndexModel> logger)
        {
            _logger = logger;
        }

        public void OnGet()
        {

        }
    }
}

排查解决方案

  • 检查启动配置文件:打开Properties/launchSettings.json,确认launchUrl设置为"/"或留空,applicationUrl没有额外的路径后缀(比如不要写成https://localhost:5001/foo)。如果启动URL指向了不存在的路径,会直接返回404。

  • 验证页面文件属性:右键Index.cshtml→属性,将“复制到输出目录”设置为如果较新则复制或始终复制。若该属性为“不复制”,编译后输出目录会缺少页面文件,导致无法访问。

  • 确认命名空间一致性:右键项目→属性→应用程序,查看“根命名空间”是否为RazorPagesWebApp,需与IndexModel的命名空间RazorPagesWebApp.Pages完全匹配,否则Razor页面无法关联对应的PageModel。

  • 清理重建项目:执行菜单→生成→清理解决方案,再重新生成项目。编译缓存可能导致页面未被正确识别,清理后可解决此类问题。

  • 临时排查中间件影响:尝试注释掉app.UseAuthorization();(尽管未添加身份验证,该中间件理论上不影响,但可排除潜在的拦截问题),重新运行项目测试是否能访问首页。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:49:55