我有一个Blazor页面,需要在不同的情况下以显著不同的方式呈现。我目前正在使用一个非常大的";如果";声明在两者之间做出决定,但这非常笨拙。代码背后有一个重要的逻辑,我不想复制/粘贴。有没有一种方法可以将两个不同的UI页面建立在相同的代码基础上?
我尝试过用两个不同的页面隐藏代码,然后继承一个包含所有逻辑的基类,就像这样。
public partial class MyPageHorizontal : MyPageLogic
{
}
public partial class MyPageVertical : MyPageLogic
{
}
public partial class MyPageLogic : ComponentBase
{
//logic and properties go here
}
我得到错误";基类不同于在其他部分中声明的";
您的Razor文件需要从您的自定义Base继承,比如这个
@inherits IndexBase
@page "/"
@page "/IndexHoriz"
<h1>Hello, world!</h1>
Welcome to your new app. This page should render horizontally
<SurveyPrompt Title="How is Blazor working for you?" />
Razor编译器将假定它们继承自ComponentBase,否则。