I am trying to use a pagemodel class in a client side Blazor in a way so i dont have to retype all the "base" properties
I was thinking of creating class
public partial class SomePage : BasePage
{ }
Error CS0263 Partial declarations of 'Somepage' must not specify different base classes
My base classe looks like this
public class BasePage : ComponentBase
{
[Inject]
protected NavigationManager NavigationManager { get; set; }
[Inject]
protected HttpClient Http { get; set; }
}
I also tried changing adding IComponent, IHandleEvent, IHandleAfterRender so it looks like this
public class BasePage : ComponentBase, IComponent, IHandleEvent, IHandleAfterRender
but that did not help.
Any ideas how to inherit from a base class in PageModel partial declaration?
This is about how C# implements partial classes.
In SomePage.razor you will have to add
@inherits BasePage
All parts of a partial class must specify the same base class (or none, then the baseclass from the other part will be used).
Your SomePage.razor file is compiled to C# first, and there the generator will by default specify ComponentBase as the base class.
Since you cannot tell the generator to omit the base class you have to use @inherits
to override it.
As a consequence, you can (but don't have to) shorten the behind class to
partial class SomePage // code-behind.
{
}
the public
modifier and the baseclass will then be taken from the generated part.