gpt4 book ai didi

c# - 如何在 @code block 中编写 Blazor HTML 代码?

转载 作者:行者123 更新时间:2023-12-03 16:42:56 27 4
gpt4 key购买 nike

如何在 @code 内的函数中编写 Blazor HTML 代码堵塞?

考虑以下代码:

@page "/Test"

@if (option == 1)
{
drawSomething("Something");
}
else
{
drawSomething("Something else");
}

@code {
int option;

void drawSomething(string message)
{
<p>message</p>
}
}

在我尝试构建之前它不会产生任何错误,然后它给了我以下错误:

Error CS0103 The name '__builder' does not exist in the current context



在( Test.razor.g.cs )中的行上:
__builder.AddContent(0, "        ");
__builder.AddMarkupContent(1, "<p>message</p>\r\n");

如果这意味着 Blazor HTML 代码只能写入文件的第一部分,而不能写入函数或类中,这似乎非常有限。

我正在使用 blazor 的最新版本( 3.0.100-preview9-014004 )。

注意:给定示例中的输出高度简化,我想知道我是否以及如何从函数中编写代码,而不是以更好的方式解决上面的输出。

最佳答案

这是 announced as a feature for Preview6但它并没有像当时宣传的那样奏效,而且后来似乎有些细节发生了变化。该页面底部有来自 Cosmin Sontu 的评论,指出了正确的方法:

@using Microsoft.AspNetCore.Components.Rendering

@*tested with preview 9*@
@{ GreetPerson(__builder, "John"); }

@code {

void GreetPerson(RenderTreeBuilder __builder, string name)
{
<p>Hello, <em>@name!</em></p>
}
}

姓名 __builder无法更改。那是双下划线。

关于c# - 如何在 @code block 中编写 Blazor HTML 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57839622/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com