C# 如何使用asp.net core 2.0 Razor页面执行下载操作
我正在使用文档管理系统,我成功地完成了上传和删除文件,但我无法执行从数据库下载操作,我是新的Razor页面,所以,如果有人能帮助我,我将不胜感激。下面是关于我的项目的更多细节 这是我的Index.cshtmlC# 如何使用asp.net core 2.0 Razor页面执行下载操作,c#,asp.net-core-2.0,razor-pages,C#,Asp.net Core 2.0,Razor Pages,我正在使用文档管理系统,我成功地完成了上传和删除文件,但我无法执行从数据库下载操作,我是新的Razor页面,所以,如果有人能帮助我,我将不胜感激。下面是关于我的项目的更多细节 这是我的Index.cshtml @Html.DisplayNameFor(model=>model.Schedule[0].Title) @Html.DisplayNameFor(model=>model.Schedule[0].UploadDT) @Html.DisplayNameFor(model=>model.
@Html.DisplayNameFor(model=>model.Schedule[0].Title)
@Html.DisplayNameFor(model=>model.Schedule[0].UploadDT)
@Html.DisplayNameFor(model=>model.Schedule[0].PublicScheduleSize)
@*
@Html.DisplayNameFor(model=>model.Schedule[0].PrivateScheduleSize)
*@
操作
@foreach(模型计划中的var项目)
{
@DisplayFor(modeleItem=>item.Title)
@DisplayFor(modelItem=>item.UploadDT)
@DisplayFor(modelItem=>item.PublicScheduleSize)
@*删除*@
删除
下载
}
您的代码很难解析,但似乎最终将文件作为blob存储在数据库表中。一般来说,您需要一个从数据库检索此数据并将其作为文件结果返回的操作:
public OnDownloadGetAsync(int scheduleId)
{
var schedule = await _context.Set<Schedule>().FindAsync(scheduleId);
if (schedule == null)
return NotFound();
return File(schedule.PublicSchedule, schedule.PublicScheduleType);
}
设置完成后,只需链接到此处理程序:
<a asp-page="Index" asp-handler="Download" asp-route-scheduleId="@schedule.Id">Download</a>
下载
您需要添加文件的路径。您可以指定下载链接的位置吗?例如
我完全不知道如何编写下载操作的代码,因此您可以给我提供此操作的完整视图。这是我的下载链接按钮
下载
我想从数据库执行下载我已经发布了答案中的链接。请看一看。
<a asp-page="Index" asp-handler="Download" asp-route-scheduleId="@schedule.Id">Download</a>