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

问题描述 投票:0回答:1

我目前正在尝试抽象一种机制,以枚举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的标记中。

是否有可能从基类继承剃刀标记,如果是这样,我做错了什么/我想念什么?

c# asp.net-core razor blazor
1个回答
0
投票

是否有可能从基类继承剃刀标记,

是,是的。但是您不能在派生类中添加其他标记。另一方面,如果在派生类中添加标记,它将覆盖基类的标记。

例如,您可以从InputText组件派生您的组件,并提供您自己的标记,而不是InputText组件提供的标记,例如您想将其变成输入密码组件。在这种情况下,仅使用标记会覆盖以前的外观,而采用新外观。也就是说,“基类”的标记被“丢弃”,而是使用派生类的标记。

© www.soinside.com 2019 - 2024. All rights reserved.