Blazor剃须刀文件中<component>标签的用法

时间:2020-03-10 05:40:43

标签: blazor blazor-server-side blazor-client-side

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

ScriptRender.razor

Static

BlazorComponent.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();
     }           
   }
}

我知道,<component type="typeof(ScriptRender)" render-mode="Static"></component> // Rest of component rendering logics 标签可以在layout.cshtml页面中使用。不能在Blazor剃须刀页面上工作?

1 个答案:

答案 0 :(得分:1)

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