要实现ASP.NET Core Razor Pages从AJAX Post下载文件,可以按照以下解决方法:
创建一个Razor Page用于处理文件下载请求。例如,创建一个名为Download.cshtml的Razor Page。
在Download.cshtml中添加以下代码:
@page
@model DownloadModel
@{
Layout = null;
}
Download
public IActionResult OnPost()
{
var filePath = FilePath; // 获取传递的文件路径
// 根据文件路径获取文件名
var fileName = Path.GetFileName(filePath);
// 返回文件名和文件路径
return new JsonResult(new { fileName, filePath });
}
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 进行其他配置
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
这样就可以通过Ajax Post请求下载文件了。当表单提交时,通过Ajax Post请求将文件路径发送到Download.cshtml,然后在服务器端处理请求,返回文件名和文件路径,最后通过JavaScript创建下载链接并模拟点击实现文件下载。