blazor - 将数据从 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 秒)不包括在此步骤中。我想要第二个进度条,为用户提供有关数据传输进度的反馈。所以我必须经常将控制器的进度发送回剃须刀页面。那可能吗?
解决方案
推荐阅读
- rust - PartialEq 和 PartialOrd 实现不返回正确的输出
- angular - 如何在角度 11 中绑定到数组
- sql - 在 Oracle DBMS 中使用多个嵌套查询
- c# - ASP.NET 身份关系
- android - 如何在 Drawer 中使用 StreamBuilder?
- python - 我可以创建一个矩形表面并在其上绘制一个文本并在 pygame 中将这些对象拼凑在一起吗
- c# - Xamarin 中的随机图像
- function - 如何通过点击原生反应中的 touchableOpacity 来开始倒计时?
- c# - 如何访问另一个查询 LINQPad 的成员?
- oauth - 如何使用 instagram API 登录