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

Blazor页面中RadzenCard组件不显示问题求助

问题分析与解决方案

核心原因:inputCardData列表为空

你的inputCardData是一个空的List<FormData>,初始化时没有添加任何实例,导致foreach循环没有迭代内容,所以RadzenCard完全不会渲染。

具体修复步骤:

  1. 初始化表单数据列表,添加默认卡片
    在OnInitializedAsync方法中或者直接初始化列表时,添加至少一个FormData对象:

    // 直接初始化时添加
    List<FormData> inputCardData = new List<FormData> { new FormData() };
    
    // 或者在OnInitializedAsync中添加
    protected override async Task OnInitializedAsync()
    {
        surplusItemsNews = await WASPOService.GetSurplusItemsNews();
        buildingLists = await WASPOService.GetBuildingLists();
        reasons = await WASPOService.GetReasons();
        // 添加默认卡片
        inputCardData.Add(new FormData());
    }
    
  2. 修复布局结构问题
    当前代码中col-md-4嵌套在form-group内,不符合Bootstrap栅格规范,会导致布局异常。调整结构,将col-md-4直接放在row下:

    <div class="container">
        <div class="row">
            <!-- 移除外层多余的col-md-12和form-group,直接遍历生成列 -->
            @foreach (var inputData in inputCardData)
            {
                <div class="col-md-4 mb-3"> <!-- 添加mb-3增加卡片间距 -->
                    <RadzenCard Variant="Radzen.Variant.Filled">
                        <div class="form-group mb-2"> <!-- 添加mb-2增加控件间距 -->
                            <RadzenAutoComplete @bind-Value="inputData.CPSNumber" Placeholder="CPS Number" Style="width: 100%" />
                        </div>
                        <div class="form-group mb-2">
                            <RadzenAutoComplete @bind-Value="inputData.Description" Placeholder="Item Description" Style="width: 100%" />
                        </div>
                        <div class="form-group">
                            <RadzenDropDownDataGrid TValue="string" ValueProperty="ReasonDescription" TextProperty="ReasonDescription" Data="@reasons" Style="width: 100%" ShowSearch="false" AllowFiltering="false" AllowSorting="false" AllowSelectAll="false" Placeholder="Reason For Surplus" PageSize="10">
                                <Columns>
                                    <RadzenDropDownDataGridColumn Property="ReasonDescription" Title="ReasonDescription" />
                                </Columns>
                            </RadzenDropDownDataGrid>
                        </div>
                    </RadzenCard>
                </div>
            }
        </div>
    </div>
    
  3. 可选:添加新增卡片按钮
    如果需要用户动态添加更多卡片,可以添加一个按钮来实现:

    <RadzenButton Text="Add New Item" Click="AddNewCard" Style="margin-bottom: 1rem;" />
    
    @code {
        private void AddNewCard()
        {
            inputCardData.Add(new FormData());
            StateHasChanged(); // 通知组件更新UI
        }
    }
    

额外检查点:

  • 确认reasons数据是否正确加载,可以通过断点调试或在浏览器控制台查看数据是否存在。
  • 检查Radzen组件引用是否完整,确保项目已正确安装Radzen.Blazor包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:57:46