julazor:如何将多个参数从navigateto传递到Web API控制器以下载文件
我正在尝试在Flazor中使用 Navivgateto
传递文件ID和名称以从我的下载控制器下载文件。
什么是正确的设置?我已经尝试了许多可能性,但我一直看到一个错误:对不起,此地址没有什么。
Razor Page
public async Task SelectedDisplayDbItemChanged(DisplayDbItemsComboBoxItemDTO item)
{
Data = null;
Data = GetDataTable();
var fileId = await utilities.ExportDataTableToFile((DataTable)Data).ConfigureAwait(false);
//navigationManager.NavigateTo($"api/download/fileId/" + fileId + "/fileName/" + "myfile", true);
//?data1=678&data2=c-sharpcorner
navigationManager.NavigateTo($"api/Download/{fileId}/{"myfile"}", true);
}
Controller:
[HttpPost("Download/{fileId}/{fileName}")]
public async Task<IActionResult> Download(string fileId, string fileName)
{
using (var ms = new MemoryStream())
{
var fullPath = Path.Combine(DownloadPath, fileId);
await using (var stream = new FileStream(fullPath, FileMode.Open))
{
await stream.CopyToAsync(ms);
}
ms.Position = 0;
return File(ms, "application/octet-stream", $"{fileName}.xlsx");
}
}
我已经看到了很多从剃刀页到剃须刀页面的示例,但不是从 navigateto
到传递多个参数的控制器。
我也尝试了这些响应: https://stackover.com/a/a/a/71130256/9594249 https://stackoverflow.com/a/a/71130256/9594249
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不像ASP.NET MVC或Razor Page,在[参数]标签中传递了Blazor参数,
请参考: https://learn.microsoft.com/en-us/aspnet/aspnet/core/core/blazor/fundamentals/routing?view?view = = appnetcore-6.0
)
添加到program.cs或startup.cs:
pages/downloadpage.cshtml
pages/downloadpage.cshtml.cs,
请参阅:
https://learn.microsoft.com/en-us/answers/questions/243420/blazor-server-app- downlaod-files-from-server.html
https://learn.microsoft.com/ko-kr/aspnet/core/razor-pages/razor-pages/razor-pages-conventions?view= aspnetcore-6.0
Not like Asp.net MVC or razor page, in Blazor parameters are passed by [Parameter] tag
please refer : https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/routing?view=aspnetcore-6.0
(Updated)
add to Program.cs or Startup.cs:
Pages/DownloadPage.cshtml
Pages/DownloadPage.cshtml.cs
please refer :
https://learn.microsoft.com/en-us/answers/questions/243420/blazor-server-app-downlaod-files-from-server.html
https://learn.microsoft.com/ko-kr/aspnet/core/razor-pages/razor-pages-conventions?view=aspnetcore-6.0