Die unten angegebenen Codes funktioniert perfekt für mich, wenn ich es mit reinem asp.net (aspx) -Anwendung mit Umleitung und Front-End in ASP-Net verwenden. Jetzt ist mein Szenario, ich habe Mixed-Modus-Anwendung in MVC und asp.net (ASPX-Seite) , so dass ich einfach die gleiche Seite (Aspx) zum Herunterladen von Datei durch Aufruf von MVC-Controller-Methode, die nicht funktioniert. Ich habe Ajax-Aufruf geschrieben, um eine void-Methode im Controller aufzurufen, die zur aspx-Seite umleitet, wo dieser Code geschrieben wird, Rest des Falles ist wie oben erwähnt.Datei-Download in aspx und MVC gemischten Modus Fall
**string path = HttpContext.Current.Server.MapPath("~/Reporting/OnePager.xlsm");
string id = Request.Params["id"];
HttpResponse response = this.Response;
response.Buffer = true;
response.Clear();
response.ContentType = "application/vnd.ms-excel";
response.AddHeader("content-disposition", "attachment; filename=" + id + "-One-Pager.xlsm");
response.WriteFile(path);
response.Flush();
response.End();**
Hier Ajax-Aufruf
if (arrselected.length > 0) {
$.ajax({
type: 'POST',
url: '@Url.Action("ExportProjectOnePager", "controller")',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ ID: arrselected[0]}),
success: function (output) {
if (output.notValid.length != arrselected.length) {
alert("success");
}
if (output.notValid != "") {
alert("You do not have permission to see this IDs :" + output.notValid);
}
}
});
}
und hier ist ungültig Controller-Methode
public void ExportProjectOnePager(string ID)
{
string _Path = @"~/Reporting/ProjectOnePager.aspx?id=" + ID;
Response.Redirect(_Path);
}
Können Sie zeigen Sie Ihre Ajax nennen? Wenn Ihre Methode ungültig ist, wie werden Sie dann auf eine andere Ansicht oder Seite umgeleitet? –
danke für deine schnelle antwort und interesse, unten gegeben ist mein ajax-anruf von mvc view .. –
Ich habe die Frage aktualisiert –