Blazor项目Index.cshtml引入Razor Component无法渲染问题求助
问题根本原因
你当前使用的是Razor Pages的.cshtml页面,不属于Blazor组件页面,无法直接通过<组件名 />的语法渲染Razor组件,必须使用官方提供的组件渲染辅助方法。
解决步骤
- 配置项目Blazor相关服务
打开项目根目录的Program.cs文件,按如下规则修改:
- 服务注册区域添加Blazor服务注册:
// 若你使用的是Blazor Server模式,添加该行 builder.Services.AddServerSideBlazor();
- 中间件配置区域,在
app.MapRazorPages();下方添加Blazor端点映射:
app.MapBlazorHub();
- 引入组件命名空间与Tag Helper
打开Pages目录下的_ViewImports.cshtml文件,添加如下内容:
// 替换为你项目中组件实际所在的命名空间,按你给出的目录结构一般是@using 你的项目名.Pages @using YourProjectName.Pages // 引入组件渲染Tag Helper @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
- 修改Index.cshtml中的组件调用写法
将原来的<FileUploadComponent />替换为如下代码即可:
<component type="typeof(FileUploadComponent)" render-mode="ServerPrerendered" />
- (可选,需要组件交互功能时必须添加)
打开Pages/Shared/_Layout.cshtml布局文件,在</body>结束标签前引入Blazor运行时JS:
<script src="_framework/blazor.server.js"></script>
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

