在.NET 8中共享RCL页面时Blazor Server应用遇404问题求助
解决方案:Blazor Server加载RCL页面404问题
核心原因
Blazor Server默认不会自动扫描Razor类库(RCL)中的路由页面,需要显式配置路由扫描规则;而MAUI Blazor因项目结构特性,默认已支持识别RCL内的页面路由。
具体修复步骤
1. 配置Blazor Server的路由扫描程序集
在Blazor Server项目的Program.cs中,修改Blazor路由配置,添加对RCL程序集的扫描:
app.MapBlazorHub(); app.MapFallbackToPage("/_Host"); // 新增该行,指定扫描RCL的程序集 app.MapRazorComponents<App>() .AddAdditionalAssemblies(typeof(CommonUI.Pages.Weather).Assembly);
注意:将
CommonUI.Pages.Weather替换为你RCL中实际页面的类型,确保能正确定位到RCL程序集。
2. 验证命名空间导入
确认Blazor Server项目的_Imports.razor已添加RCL页面所在的命名空间:
@using CommonUI.Pages
3. 检查导航路由地址
确保Blazor Server中指向天气页面的导航链接与RCL页面定义的路由一致,比如RCL中Weather页面的路由为@page "/weather",则导航链接应写为:
<NavLink href="weather" Match="NavLinkMatch.All">Weather</NavLink>
4. 清理重建解决方案
- 右键解决方案 → 清理解决方案
- 右键解决方案 → 重建解决方案
- 重启Blazor Server应用后重新测试页面访问
额外检查点
- 确认RCL项目的输出类型为类库,未被误修改为其他类型
- 检查Blazor Server对RCL的引用为项目引用,而非文件引用
- 查看浏览器控制台是否有路由相关报错,辅助定位问题
内容的提问来源于stack exchange,提问作者udaya kumar
相关产品推荐
相关产品推荐

