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

.NET 7中从Razor类库引用Razor组件页面遇404问题咨询

解决方案:在Web应用中使用Razor类库的Razor组件页面

可以在.NET 7的Web应用(MVC/Razor Pages)中使用Razor类库中的可路由Razor组件页面,你的问题源于配置不完整和路由路径不匹配,按以下步骤修复:

1. 检查Razor类库配置

确保类库的.csproj文件包含正确的SDK和配置:

<Project Sdk="Microsoft.NET.Sdk.Razor">
  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <AddRazorSupportForMvc>true</AddRazorSupportForMvc>
  </PropertyGroup>
  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
</Project>

2. 更新Web应用的Program.cs配置

补充必要的Blazor服务和端点映射:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages();

// 添加Server-Side Blazor服务及Razor组件支持
builder.Services.AddServerSideBlazor();
builder.Services.AddRazorComponents();

var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();

app.MapRazorPages();
app.MapControllers();

// 映射Blazor Hub及Razor组件路由
app.MapBlazorHub();
// 关联Razor类库中的组件(替换为你的组件所在类库的类型)
app.MapRazorComponents<App>()
   .AddAdditionalAssemblies(typeof(Test).Assembly);

app.Run();

3. 修正Razor组件的路由路径

你的Test.razor组件@page指令为"/test",但访问路径是/myfeature/test,两者不匹配。修改组件的路由指令:

@page "/myfeature/test"

<h3>Test Razor Component</h3>

4. 确保Web应用引用Razor类库

在Web应用项目中添加对目标Razor类库的项目引用,或通过NuGet包引用(若类库已打包)。

5. 导入组件命名空间

在Web应用的_Imports.razor文件中添加Razor类库的命名空间:

@using YourRazorLibraryNamespace
@using YourRazorLibraryNamespace.MyFeature

完成以上步骤后,重启Web应用,访问https://localhost:7054/myfeature/test即可正常加载Razor组件页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:35:30