是否可以从组件继承剃刀标记



我目前正试图抽象出一种机制,以便在IAsyncEnumerable可用时枚举它。

我有一个基本组件类,看起来大致像这个

// EnumerableRazorComponentBase.razor
@typeparam TObject
@if (!(this.enumerationTask?.IsCompleted ?? false))
{
// Display loading bar
}
// EnumerableRazorComponentBase.razor.cs
public abstract partial class EnumerableRazorComponentBase<TObject> : ComponentBase
{
private Task enumerationTask;
// rest of enumeration logic...
}

现在我在一个剃刀组件中继承了这个基类

// SomeComponent.razor
@inherits EnumerableRazorComponentBase<IMyInterface>
// other razor markup
@code {
// rest impl
}

EnumerableRazorComponentBase.razor.cs被正确继承并按预期工作,但EnumerableRazorComponentBase.razor中的标记没有添加到SomeComponent.razor的标记中。

有可能从基类继承剃刀标记吗?如果有,我做错了什么/缺少了什么?

是的,这是可能的。只需向基地添加一个呼叫。BuildRenderTree like so:

// SomeComponent.razor
@inherits EnumerableRazorComponentBase<IMyInterface>
@{
base.BuildRenderTree(__builder);
}
<h2>Additional markup in subclassed component</h2>
@code {
// rest impl
}

相关内容

  • 没有找到相关文章

最新更新