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

将Razor页面与布局移至RCL后Blazor Server出现404问题求助

解决Blazor Server迁移RCL后404问题的排查步骤

针对你把Pages和Layouts移到RCL后出现的404问题,结合.NET 8环境,按以下步骤排查:

  • 确认RCL项目类型:创建RCL时必须选择「支持 Razor 组件和页面」的模板,普通类库不会自动注册路由组件。如果选错了,重新创建符合要求的RCL再迁移文件。
  • 检查页面路由属性:确保RCL中每个页面的@page指令正确,比如Home页的@page "/"没有被误删或修改路径。
  • 简化AdditionalAssemblies配置:不需要指定多个Assembly,直接引用RCL的根Assembly即可,示例:
    <Router AppAssembly="@typeof(Program).Assembly" 
            AdditionalAssemblies="new[] { typeof(ComponentLib.Components.Layout.MainLayout).Assembly }">
        <Found Context="routeData">
            <RouteView RouteData="@routeData" DefaultLayout="@typeof(ComponentLib.Components.Layout.MainLayout)"/>
            <FocusOnNavigate RouteData="@routeData" Selector="h1" />
        </Found>
    </Router>
    
    一个RCL仅对应一个Assembly,重复指定属于冗余操作,重点是确保引用的是RCL的Assembly。
  • 验证DefaultLayout的命名空间:Router中的DefaultLayout要明确指向RCL中的布局类,避免引用主项目中残留的旧布局,建议写全命名空间(如上代码示例)。
  • 检查项目引用:主Blazor Server项目必须通过项目引用关联RCL(本地开发场景),并且确保RCL已成功构建,引用的是最新版本。
  • 清理重建解决方案:删除主项目和RCL的bin、obj文件夹,重新构建整个解决方案,避免缓存导致路由未更新。
  • 确认RCL文件的@namespace:检查RCL中页面和布局的@namespace指令,避免与主项目的命名空间完全冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:06:14