Я не получаю никакого ответа, когда пытаюсь загрузить файл 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-вызова, но все равно файл не загружается.