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

如何实现页面加载时自动展示wwwroot目录下MIDI文件的表格列表?

实现页面加载时自动展示MIDI文件列表

问题描述

我搭建了一个文件上传系统,上传的MIDI文件会被复制到wwwroot目录。目前需要点击按钮才能加载并展示目录中的MIDI文件表格列表,希望修改代码实现页面加载时自动完成这个操作。

现有代码如下:

后端C#代码

public void loadMidiFiles()
{
    var files = Directory.GetFiles(path);
    foreach (var file in files)
    {
        filesList.Add(Path.GetFileName(file));
    }
}

其中path指向wwwroot目录

前端HTML代码

<button class="btn btn-primary" @onclick="loadMidiFiles">Load</button>
<table>
    @foreach (string file in filesList)
    {
        <tr>
            <th>@file</th>
        </tr>  
    }
</table>

解决方案

在Blazor框架中,可通过组件生命周期方法实现页面加载时自动执行文件加载逻辑,具体步骤如下:

1. 利用组件初始化生命周期方法触发加载

在组件的代码部分,重写OnInitialized(同步场景)或OnInitializedAsync(异步场景)生命周期方法,直接调用loadMidiFiles:

protected override void OnInitialized()
{
    loadMidiFiles();
    base.OnInitialized();
}

如果后续loadMidiFiles需要改为异步操作(比如异步读取文件),建议使用异步生命周期方法:

protected override async Task OnInitializedAsync()
{
    loadMidiFiles();
    await base.OnInitializedAsync();
}

2. 调整前端代码

移除手动触发的按钮,直接保留表格展示逻辑,同时建议将表头标签<th>改为普通单元格标签<td>(语义更准确):

<table>
    @foreach (string file in filesList)
    {
        <tr>
            <td>@file</td>
        </tr>  
    }
</table>

3. 优化文件加载方法(可选)

为避免组件重复初始化时列表重复添加文件,可在加载前清空列表:

public void loadMidiFiles()
{
    filesList.Clear();
    var files = Directory.GetFiles(path);
    foreach (var file in files)
    {
        filesList.Add(Path.GetFileName(file));
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:01:06