我正在尝试将文件从家庭控制器传递到视图。 EventID值通过ajax调用从视图传递到控制器。控制器通过EventID在数据库中进行查找来获取文件名和路径。控制器返回一个文件,但它不会在视图上下载,很有可能我在ajax调用的成功部分中未正确处理它。控制器方法运行良好,问题出在视图的成功部分。
查看
$('#btnDownloadReport').click(function () {
var data = {
EventID: selectedEvent.eventID,
}
downloadReport(data);
})
视图中的Ajax调用
function downloadReport(data) {
$.ajax({
type: "POST",
url: '/home/GetFiles',
data: data,
success: function (data) {
$('#myModal').modal('hide');
},
error: function () {
alert('Failed');
}
})
}
家庭控制器中的控制器动作方法
public ActionResult GetFiles(int eventId)
{
ViewData["eventID"] = eventId;
using (MyDatabaseEntities1 dc = new MyDatabaseEntities1())
{
var sc = dc.ScanReports.FirstOrDefault(x => x.EventID == eventId);
var path = Path.Combine(Server.MapPath("~/App_Data/reports/"), sc.FileName + sc.FileExtension);
byte[] fileBytes = System.IO.File.ReadAllBytes(path);
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, sc.FileName);
}
}