我有一个在后面有代码的剃刀页面
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.razor
和MyRazorPage.razor.cs
必须继承自同一个类。它们都由Razor编译器编译成一个类。如果没有在Razor文件中指定@inherits
,Razor编译器会尝试使用ComponentBase
,这与分部类中的继承相矛盾。因此出现了错误。
我不想使用@inherits,因为身份验证和自定义路由正在实际实现
解决这个问题。