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

Blazor .NET 8添加自定义页面出现404错误的求助

问题分析与解决方法

可能的错误原因及对应修复步骤:

1. @page 指令缺少根路径斜杠

Razor Pages 的 @page 指令需要绝对路径(以 / 开头)来定义根级路由,否则会被解析为相对路径。

  • 修复:将 Create.cshtml 中的 @page "Agency/Create" 修改为:
    @page "/Agency/Create"
    

Blazor 的 NavLink 组件如果使用相对路径,会基于当前页面的路由拼接,可能导致错误的跳转地址。

  • 修复:将 NavLink 的 href 修改为绝对路径:
    <div class="nav-item px-3">
      <NavLink class="nav-link" href="/Agency/Create">
        <span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Agency
      </NavLink>
    </div>
    

3. Razor Pages 配置缺失或路径映射错误

如果你的 Razor Pages 放在非默认的 Components/Agency/Pages 目录下,需要确保 Program.cs 中正确配置了 Razor Pages 的扫描路径:

  • 在 Program.cs 中添加或修改以下代码:
    builder.Services.AddRazorPages(options =>
    {
        options.RootDirectory = "/Components/Agency/Pages";
    });
    
    // 确保中间件顺序正确,放在 Blazor 中间件之前
    app.MapRazorPages();
    app.MapBlazorHub();
    app.MapFallbackToPage("/_Host");
    

4. 代码后置类未继承 PageModel

Razor Pages 的代码后置类必须继承自 PageModel,否则无法被识别为有效页面:

  • 检查 CreateModel.cs:
    using Microsoft.AspNetCore.Mvc.RazorPages;
    
    namespace App.Web.Components.Agency.Pages;
    
    public class CreateModel : PageModel // 必须继承 PageModel
    {
        public void OnGet()
        {
            // 页面逻辑
        }
    }
    

5. 路由冲突或缓存问题

  • 清理浏览器缓存,或者使用隐私模式测试,排除路由缓存导致的问题。
  • 检查是否有其他页面或路由定义了相同的 /Agency/Create 路径,导致冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 07:16:15