首页 > 解决方案 > 将数据从 Controller 发送到 Razor 页面

问题描述

我目前正在开发一个页面,用户可以在其中上传一个 excel 文件,然后将其传输到数据库。我正在使用 Radzen 框架进行文件上传和进度条小部件。

剃须刀页面:

    <div class="row">
        <div class="col-md-4">
            <RadzenUpload Url="upload/single" Style="margin-bottom: 20px;"
                          Progress=@(args => OnProgress(args, "Single file upload")) ChooseText="Datei hochladen...">
            </RadzenUpload>
        </div>
        <div class="col-md-2">
            <h3>Datei-Upload</h3>
            <RadzenProgressBar @bind-Value="progress" Style="margin-bottom: 20px" />
        </div>
        <div class="col-md-4">
    
        </div>    
    </div>
    <RadzenDataGrid AllowFiltering="true" EditMode="DataGridEditMode.Single" @ref="nowdealsGrid" 
                    IsLoading="@isLoading" AllowColumnResize="true" FilterMode="FilterMode.Simple" 
                    PageSize="25" AllowPaging="true" AllowSorting="true" Data="@nowdeals" TItem="Nowdeals" 
                    ColumnWidth="300px" LogicalFilterOperator="LogicalFilterOperator.Or" RowUpdate="@OnUpdateRow" RowCreate="@OnCreateRow">
        <Columns>
            <RadzenDataGridColumn TItem="Nowdeals" Property="CommissionNumber" Title="Komm.-Nr" />        
            <RadzenDataGridColumn TItem="Nowdeals" Property="Aktionsfahrzeuge" Title="Aktions-Fzg." />            
            <RadzenDataGridColumn TItem="Nowdeals" Property="ApprovedByWs" Title="Freigabe WS" />
            <RadzenDataGridColumn TItem="Nowdeals" Property="MerbagChipIn" Title="Merbag Chip in" />
            
        </Columns>
    </RadzenDataGrid>
    
    @code{
    
    double progress;
    
    void OnProgress(UploadProgressArgs args, string name)
        {
          

  this.progress = args.Progress;
    }    
}

组件中的 URL 属性RadzenUpload将文件发送到我的控制器:

public class UploadController : Controller
{
        private dbContext gwContext;
        public UploadController(dbContext context)
        {
            this.context = context;
        }

        [HttpPost("upload/single")]
        public IActionResult Single(IFormFile file)
        {
           // Here is where I read from the excel file and write it back to the database               
                  
        }        
}

问题是:进度条仅通过绑定到progress变量来显示实际文件上传的状态,该变量由RadzenProgressBar. 但是,到数据库的数据传输(大约需要 6 到 7 秒)不包括在此步骤中。我想要第二个进度条,为用户提供有关数据传输进度的反馈。所以我必须经常将控制器的进度发送回剃须刀页面。那可能吗?

标签: blazorblazor-server-side

解决方案


推荐阅读