Pobierz plik Excela w żądaniu JQuery-AJAX z ASP.NET MVC
W moim projekcie ASP.NET MVC wygenerowałem plik Excela przy użyciu
ClosedXML
http://closedxml.codeplex.com/
.
Działa dobrze w wywołaniach innych niż Ajax. Oto moja metoda akcji kontrolera
// Prepare the response
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=\"" + reportHeader + ".xlsx\"");// Flush the workbook to the Response.OutputStream
using (MemoryStream memoryStream = new MemoryStream())
{
MyWorkBook.SaveAs(memoryStream);
memoryStream.WriteTo(Response.OutputStream);
memoryStream.Close();
}
Response.End();
Teraz próbuję to zrobić za pomocą żądania AJAX. Ale plik nie jest wysyłany z kontrolera MVC.
$.ajax({
url: url,
type: "POST",
data: fd,
processData: false,
contentType: false,
beforeSend: function () {
},
success: function (response) { },
error: function (request, status, error) {
},
complete: function () {
}
});
W jaki sposób mogę to zrobić?
Z góry dziękuję.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Ramiramilu miał rację co do używania i .
Zrobiłem to samo, ale dla ASP.NET MVC3.
Sugerowałbym użycie kontrolera, który zwraca Do Twojej wiadomości na temat
MSDN
https://msdn.microsoft.com/en- ... esult(v=vs.118).aspx
I na koniec jak to zrobiłem (kontroler):
W modelu (możesz usunąć statykę, jeśli chcesz, i zadzwoń go za pomocą instancji)
AJAX:
Przy okazji, usunąłem wszystkie programy obsługi wyjątków, aby uprościć sprawę, ale myślę, że możesz to zrobić samodzielnie.
Anonimowy użytkownik
Potwierdzenie od:
DIRECTLY
załaduj plik za pomocą AJAX, ale możesz załadować plik za pomocą w połączeniu z AJAX, aby przesłać plik. To znaczy, jeśli używasz AJAX GET/POST, to cała zawartość pliku będzie w pamięci przeglądarki, ale nie będzie można jej zapisać na dysku (ze względu na ograniczenia JavaScript).
Zamiast tego można użyć , aby określić adres URL, który z kolei usunie plik i podpowiedzi/otworzyć zaproszenie. Lub można użyć ukrytych iframe i ustaw src atrybut iframe z adresem URL, z którego zostanie pobrany plik.