ASP.NET Core 中的组件标记帮助程序Component Tag Helper in ASP.NET Core

本文内容

作者:Daniel RothLuke Latham

若要从页面或视图呈现组件,请使用组件标记帮助器

以下组件标记帮助器呈现页面或视图中的 Counter 组件:

  1. <component type="typeof(Counter)" render-mode="ServerPrerendered" />

组件标记帮助器还可以将参数传递给组件。请考虑以下 ColorfulCheckbox 组件,该组件设置复选框标签的颜色和大小:

  1. <label style="font-size:@(Size)px;color:@Color">
  2. <input @bind="Value"
  3. id="survey"
  4. name="blazor"
  5. type="checkbox" />
  6. Enjoying Blazor?
  7. </label>
  8. @code {
  9. [Parameter]
  10. public bool Value { get; set; }
  11. [Parameter]
  12. public int Size { get; set; } = 8;
  13. [Parameter]
  14. public string Color { get; set; }
  15. protected override void OnInitialized()
  16. {
  17. Size += 10;
  18. }
  19. }

Sizeint)和 Colorstring组件参数可由组件标记帮助器设置:

  1. <component type="typeof(ColorfulCheckbox)" render-mode="ServerPrerendered"
  2. param-Size="14" param-Color="@("blue")" />

在页面或视图中呈现以下 HTML:

  1. <label style="font-size:24px;color:blue">
  2. <input id="survey" name="blazor" type="checkbox">
  3. Enjoying Blazor?
  4. </label>

传递带引号的字符串需要显式 Razor 表达式,如前面的示例中 param-Color 所示。string 类型值的 Razor 分析行为不适用于 param-* 属性,因为该属性是 object 类型。

参数类型必须是 JSON 可序列化的,这通常意味着类型必须具有默认构造函数和可设置的属性。例如,你可以在前面的示例中为 SizeColor 指定一个值,因为 SizeColor 的类型是 JSON 序列化程序支持的基元类型(intstring)。

RenderMode 配置组件是否:

  • 在页面中预呈现。
  • 在页面上呈现为静态 HTML,或者包含从用户代理启动 Blazor 应用所需的信息。
呈现模式说明
ServerPrerendered将组件呈现为静态 HTML,并包含 Blazor 服务器应用的标记。用户代理启动时,此标记用于启动 Blazor 应用。
Server呈现 Blazor 服务器应用的标记。不包括组件的输出。用户代理启动时,此标记用于启动 Blazor 应用。
Static将组件呈现为静态 HTML。

尽管页面和视图可以使用组件,但反过来则不行。组件不能使用视图和页特定的功能,如分部视图和节。若要在组件中通过分部视图使用逻辑,请将分部视图逻辑分解为一个组件。

不支持从静态 HTML 页面呈现服务器组件。

其他资源Additional resources