Вот что я делаю: data
, в моем случае, это просто имя файла и расширение файла, но ваш, по всей видимости, это файл.
$.ajax({
url: '@Url.Action("// Action", "// Controller")',
type: 'POST',
data: JSON.stringify(data),
contentType: 'Application/json',
success: function (result) {
if (result.success) {
window.location.href = '@Url.Action("// Action", "// Controller")
}
else {
debugger;
errorNotification("Error! " + result.message);
}
}
});
In мой контроллер У меня есть глобальное состояние c byte [].
Вызов ajax
вызывает метод контроллера, который получает файл и сохраняет его в виде байтового массива, а затем я устанавливаю глобальное состояние c байт [] как результат этого. После этого вы можете вернуть что-либо из этой функции, я вернул bool и сообщения, если преобразование в байт [] не удалось.
В случае успеха ajax у меня есть windows. location.href, который вызывает действие контроллера, которое просто возвращает File
представлению.
return File(_fileContents, "application/force-download", "test" + extension);
_fileContents
в моем случае, имя глобальной установки c byte [], установленной ранее .