blazor return RenderFragment '__builder' 在当前上下文中不存在
blazor return RenderFragment '__builder' does not exist in the current context
我正在尝试从组件私有方法 return RenderFragment
,
但我收到编译错误:
'__builder' does not exist in the current context
这是显示问题的最少代码:
<div>
@RenderButton(1)
</div>
@code {
private RenderFragment RenderButton(int number)
{
return builder =>
{
<button type="button">@number</button>
};
}
}
在我看来这可能不是 possible/allowed,如果不是,有什么办法可以避免编写相同的渲染代码吗?假设我需要使用这个 RenderButton
方法在多个循环中,如果 else 块
编辑:我现在能想到的唯一解决方案是为每个 RenderFragment
方法创建一个组件
您的代码似乎适用于较早版本的 Blazor。
Blazor 现在有了更优雅的符号,使用 templated delegates:
private RenderFragment RenderButton(int number)
{
return @<button type="button">@number</button>;
}
通常缩写为:
private RenderFragment RenderButton(int number) =>
@<button type="button">@number</button>;
您的错误的解释是 __builder
是一个固定的名称,由编译器使用。您也可以像这样修复您的代码:
// not recommended
private RenderFragment RenderButton(int number)
{
return __builder =>
{
<button type="button">@number</button>
};
}
razor 编译器能够在 @
和 ;
上进行智能切换,并在幕后插入 __builder => ...
部分。
我正在尝试从组件私有方法 return RenderFragment
,
但我收到编译错误:
'__builder' does not exist in the current context
这是显示问题的最少代码:
<div>
@RenderButton(1)
</div>
@code {
private RenderFragment RenderButton(int number)
{
return builder =>
{
<button type="button">@number</button>
};
}
}
在我看来这可能不是 possible/allowed,如果不是,有什么办法可以避免编写相同的渲染代码吗?假设我需要使用这个 RenderButton
方法在多个循环中,如果 else 块
编辑:我现在能想到的唯一解决方案是为每个 RenderFragment
方法创建一个组件
您的代码似乎适用于较早版本的 Blazor。
Blazor 现在有了更优雅的符号,使用 templated delegates:
private RenderFragment RenderButton(int number)
{
return @<button type="button">@number</button>;
}
通常缩写为:
private RenderFragment RenderButton(int number) =>
@<button type="button">@number</button>;
您的错误的解释是 __builder
是一个固定的名称,由编译器使用。您也可以像这样修复您的代码:
// not recommended
private RenderFragment RenderButton(int number)
{
return __builder =>
{
<button type="button">@number</button>
};
}
razor 编译器能够在 @
和 ;
上进行智能切换,并在幕后插入 __builder => ...
部分。