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

Razor组件无法获取父页面URL传递的Id参数问题

问题解决:Blazor子组件获取父页面路由参数

当前ChaptersByCampaignList组件的Id参数始终为0,无法获取父页面路由/campaigns/{id:int}中的CampaignId,导致无法正确加载对应章节数据,解决步骤如下:

步骤1:父页面接收路由参数

在父页面的@code块中添加路由参数绑定,确保父页面能获取到URL中的id:

@code {
    [Parameter]
    public int Id { get; set; }

    // 保留原有的campaign、message变量及ShowAll等方法
}

步骤2:显式传递参数给子组件

在父页面引用ChaptersByCampaignList组件时,将父页面的Id参数传递给子组件:

<ChaptersByCampaignList Id="@Id" />

步骤3:(可选)子组件参数校验优化

为避免Id为0时发起无效API请求,在子组件的OnParametersSetAsync方法中添加参数校验:

protected override async Task OnParametersSetAsync()
{
    if (Id > 0)
    {
        await ChapterService.GetAllByCampaignId(Id);
    }
}

问题原因说明

子组件的[Parameter]属性需要父组件主动传递值,int类型参数默认初始值为0,如果不显式传递父页面的路由参数,子组件就无法获取到正确的CampaignId。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:41:01