假设我的Blazor组件中具有以下标记:
<div @attributes=Attributes data-myattr="something">
@ChildContent
</div>
我想为父组件提供一种方法来确定将使用哪个标签代替<div>
。像这样:
<@Tag @attributes=Attributes data-myattr="something">
@ChildContent
</@Tag>
@Tag为字符串参数。当然那行不通。我知道模板,但是它对我不起作用,因为我想控制标签的结构,并为其添加额外的属性。我只想让用户选择要显示哪个标签。
答案 0 :(得分:3)
创建.cs文件而不是使用.razor文件。
在文件中创建您的课程public class MyComponent: ComponentBase
,然后覆盖BuildRenderTree
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
builder.OpenElement(0, YourParameter);
builder.CloseElement();
}
如果您不确定如何使用RenderTreeBuilder,只需创建一个临时剃刀文件并创建所需的标记,然后查看obj\Debug\netstandard2.1\Razor\