Blazor 页 "类型"的部分声明不得指定不同的基类

  • 本文关键字:基类 类型 Blazor 声明 c# blazor
  • 更新时间 :
  • 英文 :


我有一个在后面有代码的剃刀页面

public partial class MyRazorPage: ComponentBase, IDisposable
{
...
}

我有好几页都有一些常见的东西,很多常见的东西。

我创建了一个抽象类,比如:

public abstract class MycustomComponentBase<TItem1, TItem2> : ComponentBase where TItem1: class, new() where TItem2: class, new()
{
...
}

并将剃须刀类页面更改为

public partial class MyRazorPage: MycustomComponentBase<MyClass1, MyClass2>, IDisposable
{
...
}

不会工作,因为我得到:

错误CS0263"MyRazorPage"的部分声明不能在MyRazor Page.razor.cs 中指定不同的基类

我也尝试了public abstract partial class MycustomComponentBase<TItem1, TItem2>,但出现了相同的错误。

有办法在偏类上做到这一点吗?我不想使用@inherits,因为身份验证和自定义路由正在实际实现中工作。

您的MyRazorPage.razorMyRazorPage.razor.cs必须继承自同一个类。它们都由Razor编译器编译成一个类。如果没有在Razor文件中指定@inherits,Razor编译器会尝试使用ComponentBase,这与分部类中的继承相矛盾。因此出现了错误。

我不想使用@inherits,因为身份验证和自定义路由正在实际实现

解决这个问题。

最新更新