如何在 blazor 页面模型部分声明中使用不同的基类?



我正在尝试以某种方式在客户端 Blazor 中使用页面模型类,这样我就不必重新键入所有"基本"属性

我在想创建类

public partial class SomePage : BasePage
{ }

错误 CS0263 "Somepage"的部分声明不得指定不同的基类

我的基类看起来像这样

public class BasePage : ComponentBase
{
[Inject]
protected NavigationManager NavigationManager { get; set; }
[Inject]
protected HttpClient Http { get; set; }
}

我还尝试更改添加IComponent,IHandleEvent,IHandleAfterRender。 所以它看起来像这样

public class BasePage : ComponentBase, IComponent, IHandleEvent, IHandleAfterRender

但这无济于事。

任何想法如何从PageModel分部声明中的基类继承?

这是关于 C# 如何实现分部类的。

在SomePage.razor中,您必须添加

@inherits BasePage 

与错误状态一样,分部类的所有部分必须指定相同的基类(或无,然后使用另一部分的基类(。

您的 SomePage.razor 文件首先编译为 C#,默认情况下生成器将指定 ComponentBase 作为基类。 由于不能告诉生成器省略基类,因此必须使用@inherits来覆盖它。

因此,您可以(但不必(将后面的类缩短为

partial class SomePage  // code-behind
{
}

然后,public修饰符和基类将从生成的部分中获取。

最新更新