You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor Razor组件分页属性方法复用:如何实现继承?

Blazor中通过继承复用Razor组件的分页逻辑

Blazor完全支持通过继承基类来复用组件的属性和方法,具体操作步骤如下:

1. 创建共享基类

新建一个C#类文件(比如PagedComponentBase.cs),将所有组件共用的分页属性、方法迁移到这个基类中,注意把需要被子类访问的成员设为protected或public:

using Microsoft.AspNetCore.Components;

public class PagedComponentBase : ComponentBase
{
    // 共享属性
    protected bool MyProperty { get; set; }

    // 共享方法(原ZoekenAsync译为SearchAsync)
    public async Task SearchAsync(ChangeEventArgs args)
    {
        // 这里编写分页相关的通用逻辑
        // do something();
    }
}

2. 在子组件中继承基类

在需要复用逻辑的Razor组件开头,通过@inherits指令指定基类,之后组件就能直接使用基类的属性和方法:

@inherits PagedComponentBase

<!-- 组件的HTML内容示例 -->
<input type="text" @onchange="SearchAsync" placeholder="搜索" />

@code {
    // 这里编写当前组件独有的属性和方法即可
    private string LocalFilter { get; set; }
}

注意事项

  • 基类中如果需要访问Blazor的生命周期方法(如OnInitializedAsync),直接在基类中重写即可,子类可选择继承或覆盖这些逻辑
  • 若需要强制子类实现特定逻辑,可以将基类设为抽象类,并定义抽象方法(比如获取分页数据的方法)
  • 私有成员无法被子类访问,所以通用成员必须设置为protected或public

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:59:57