在 Blazor 剃刀文件中使用 <component> 标签

Usage of <component> tags inside Blazor razor files

是否可以在 .razor 文件中呈现 <component> 标签。我有一个要求,需要在另一个 Blazor 组件中呈现静态脚本。因此,我使用 BuildRenderTree 概念创建了脚本标签,并尝试添加带有 render-mode<component> 标签作为 Static。但是,它不会在网页中呈现。

ScriptRender.razor

public class ScriptRender : ComponentBase
{
  [Parameter]
  public List<string> Source { get; set; }
  protected override void BuildRenderTree(RenderTreeBuilder builder)
  {
     base.BuildRenderTree(builder);
     foreach (var scriptPath in Source)
     {
        builder.OpenElement(0, "script");
        builder.AddAttribute(1, "src", scriptPath);
        builder.CloseElement();
     }           
   }
}

BlazorComponent.razor

<component type="typeof(ScriptRender)" render-mode="Static"></component>
// Rest of component rendering logics

我知道,<component> 标签可以用在 layout.cshtml 页面中。不在 Blazor 剃须刀页面中工作吗?

Tag Helper 组件不属于 Blazor。 Blazor 没有标签助手的概念,而是组件的概念,因此您不能将它嵌入到 Blazor 组件中。您只能在 .cshtml 扩展文件中使用组件 Tag Helper。在 Blazor 上下文中,_Host.cshtml 文件中使用了组件 Tag Helper,它实际上是一个 Razor 页面,用于处理对 Blazor Server App 的初始请求,包括 Blazor 应用程序的呈现。