我正在与Blazor一起尝试一些事情,但我仍然是新手。我正在尝试获取文件流以下载到浏览器。从Blazor将文件下载到浏览器的最佳方法是什么?
我尝试在剃刀视图中使用一种方法,该方法返回流,但是不起作用。
MP4Box
上面的代码没有给我任何东西,甚至没有错误
答案 0 :(得分:5)
另一种解决方案是使用endpoints.MapControllerRoute
添加一个简单的api控制器端点。不过,这仅适用于服务器端。
例如:
endpoints.MapBlazorHub();
endpoints.MapControllerRoute("mvc", "{controller}/{action}");
endpoints.MapFallbackToPage("/_Host");
然后添加一个控制器。例如:
public class InvoiceController : Controller
{
[HttpGet("~/invoice/{sessionId}")]
public async Task<IActionResult> Invoice(string sessionId, CancellationToken cancel)
{
return File(...);
}
}
.razor文件中的用法:
async Task GetInvoice()
{
...
Navigation.NavigateTo($"/invoice/{orderSessionId}", true);
}
答案 1 :(得分:0)
对于上传文件,我建议使用Steve Sanderson blog post。
出于安全原因,您无法从浏览器访问文件。同样,如果您将服务器端blazeor中的文件作为目标,则将服务器自身中的文件作为目标。