如何在blazor页面模型部分声明中使用其他基类?

时间:2019-12-29 10:18:26

标签: blazor blazor-client-side

我正在尝试以某种方式在客户端Blazor中使用pagemodel类,这样我就不必重新键入所有的“基本”属性

我正在考虑创建课程

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部分声明的基类继承吗?

1 个答案:

答案 0 :(得分:1)

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

在SomePage.razor中,您必须添加

@inherits BasePage 

就像错误状态一样,部分类的所有部分都必须指定相同的基类(或不指定任何基类,则将使用另一部分中的基类)。

您的SomePage.razor文件首先被编译为C#,然后生成器将ComponentBase指定为基类。 由于您无法告诉生成器忽略基类,因此需要使用@inherits来覆盖它。

因此,您可以(但不必)将落后的课程缩短为

 partial class SomePage { }

public修饰符和基类将从生成的零件中获取。