You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor渲染片段能否以表达式块开头?可省略外层<text>标签吗?

可以去掉外层<text>标签

完全可以让Blazor的RenderFragment以表达式块作为开头,不需要外层的<text>标签。Blazor编译器能够直接解析这种混合代码块和HTML元素的结构,<text>标签主要用于包裹无容器的纯文本或零散内容,这里的场景不需要它。

修改后的代码如下:

@{     
    RenderFragment<MyClass> myRenderFragment = (ctx) =>
        @{var clas = ctx.Bold ? "bold" : "";}
        <span class="@clas">@ctx.Text</span>;
}

@myRenderFragment(new MyClass(true, "Hello"))
@myRenderFragment(new MyClass(false, "World"))

@code {
    public record class MyClass(bool Bold, string Text);
}

这段代码的逻辑和原示例完全一致:通过表达式块根据ctx.Bold的值设置样式类,然后渲染对应的<span>元素,只是去掉了不必要的<text>包裹。Blazor会正确处理RenderFragment中先执行代码块、再输出HTML元素的结构。

内容的提问来源于stack exchange,提问作者innominate227

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 16:19:49