ARenderFragment期望只返回一个组件,但该组件可能具有嵌套组件:
private RenderFragment CreateRenderFragment()
{
// This works
return
@<div>
<text>Hello</text>
<text>world!</text>
</div>;
// and so does this
// return @<span><text>Hello</text> <text>world!</text></span>;
}
Run Code Online (Sandbox Code Playgroud)
如果我们不想将组件包含在 a 中<div>,或者<span>我们可以按照约定创建一个 razor 组件ChildContent,例如ChildContentComponent:
@ChildContent
@code
{
[Parameter] public RenderFragment ChildContent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后使用该组件作为包装器:
private RenderFragment CreateRenderFragment()
{
return
@<ChildContentComponent>
<text>Hello</text>
<text>world!</text>
</ChildContentComponent>;
}
Run Code Online (Sandbox Code Playgroud)
我可能错过了一些东西,但我看不到任何其他方法来创建RenderFragment具有多个组件的组件。以下均不能编译:
private RenderFragment CreateRenderFragment1()
{
return @<text>Hello</text> <text>world!</text>;
}
private RenderFragment CreateRenderFragment2()
{
return
@:@{
<text>Hello</text>
<text>world!</text> …Run Code Online (Sandbox Code Playgroud)