当我尝试将Excel文件从服务器下载到客户端时,我没有任何响应。我有以下代码可以做到这一点。
public ActionResult Download()
{
string file = "testfile.xlsx";
string fullPath = Path.Combine(Server.MapPath("~/temp"), file);
return File(fullPath, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", file);
}
我尝试将内容类型更改为“ application / vnd.ms-excel”,但仍然无法正常工作。
此操作中包含代码,但解析返回文件后没有任何反应。
为此操作,我还会添加ajax调用。
$('#Submit_Report').click(function (event) {
if (($('#txtReportMarket').val() == '') && ($('#txtReportPractice').val() == '')) {
alert("Please enter a value to Generate Report based on!");
event.preventDefault();
}
else {
$.ajax({
url: '/ShareTemplate/GenerateReport/',
data: "{ 'ReportPractice': '" + $('#txtReportPractice').val() + "','ReportMarket':'" + $('#txtReportMarket').val() + "'}",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data["FileName"]);
$.ajax({
type: 'GET',
url: '/ShareTemplate/Download/',
success: function (data) {
alert("download Successful!");
@*window.open('@Url.Content("~/ShareTemplate/Download")')*@
},
error: function () {
DisplayError('Failed to load the data.');
}
});
}
});
}
});
第一个ajax调用工作正常,并且文件已生成并存储。但是第二个Ajax调用是问题所在,有时我也从第二个Ajax调用中获得成功消息,但是仍然没有下载文件。
答案 0 :(得分:1)
在第一个ajax
呼叫success
中。放置以下代码,然后删除剩余的代码。
window.location = '@Url.Action("Download", "ShareTemplate")';