Wie die download-Datei über jquery, ajax und C#
Ich möchte eine Datei herunterzuladen, mithilfe von jQuery-Ajax-web-Methode, aber es funktioniert nicht.
Hier mein jQuery-ajax-Aufruf der web-Methode:
function GenerateExcel() {
var ResultTable = jQuery('<div/>').append(jQuery('<table/>').append($('.hDivBox').find('thead').clone()).append($('.bDiv').find('tbody').clone()));
var list = [$(ResultTable).html()];
var jsonText = JSON.stringify({ list: list });
$.ajax({
type: "POST",
url: "GenerateMatrix.aspx/GenerateExcel",
data: jsonText,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
},
failure: function (response) {
alert(response.d);
}
});
}
- und dies ist die web-Methode definition:
[System.Web.Services.WebMethod()]
public static string GenerateExcel(List<string> list)
{
HttpContext.Current.Response.AppendHeader("content-disposition", "attachment;filename=FileEName.xls");
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.Write(list[0]);
HttpContext.Current.Response.End();
return "";
}
Wie Sie bekommen es zu tun? Bitte helfen Sie mir.
Eine weitere Sache: ich möchte, dass Sie es herunterladen auf dem client-pc, nicht um es zu speichern auf dem server.
- Was passiert, wenn Sie auf den link gehen, direkt (ohne ajax)?
- Siehe diese Beiträge: stackoverflow.com/questions/1944241/... stackoverflow.com/questions/1095102/...
- ich kann nicht gehen, um direkt link, weil ich habe html versenden von client-Seite
- Sie können einen Blick auf diese Frage, die helfen können stackoverflow.com/a/9834261/1026611
Du musst angemeldet sein, um einen Kommentar abzugeben.
gut ich habe es mit iframe
dies ist die modifizierte ajax Funktionsaufruf
- und dies ist die design-Teil
beim laden der Seite mein code sieht wie folgt aus
Fügen Sie diese in Ihre Seite Ansicht-
Server-Seite
Fügen Sie diesen code in JavaScript -
Funktionieren sollte!
Vorausgesetzt, der C# - code reagiert mit den richtigen überschriften für Excel können Sie leiten Sie einfach auf den link anstatt ajax: