当你在Blazor中使用原始HTML时,你可以这样写:
<div style=" display: flex;align-items: center;" @onclick="@Toggle">
...
</div>
"Toggle"这是方法(Action
)。我想提取这样一段代码到创建MarkupString的辅助函数。像这样:
MarkupString HelperBuild(Action action)
{
return new MarkupString(@$"<div style='display: flex;align-items: center;'
@onclick=??????>....");
}
有可能吗?如果是,怎么做?
RenderFragment
应该可以很好地满足您的要求。
RenderFragment HelperBuild(string childContent, Action action)
{
return @<div style="display: flex; align-items: center;" @onclick="action">
@childContent
</div>;
}
那么你可以在你的razor标记中这样使用:
@HelperBuild("My Child Content", () => Console.WriteLine("foo"))
请注意,与您引用的GitHub问题不同,上面的行不应该在code
块中,因为这不会做任何事情。它应该在你的页面的其他标记旁边。