auf das klicken auf eine Schaltfläche öffnen einer Streaming-Seite im neuen Fenster oder tab
Ich bin mit .NET4 MVC3-VS2010. Wir sind mit ABCpdf zum konvertieren von html nach pdf konvertieren und übertragen Sie Sie an den browser. Das problem ist, dass ich brauche, um herauszufinden, einen Weg für die pdf-Datei geöffnet werden in einem neuen Fenster oder tab. Ich habe gelesen, ein paar Beiträge über ähnliche Problem, konnte aber nichts finden zu helfen, mit diesen speziellen Fall.
Bei Klick auf einen button (nicht auf einen link) auf eine Seite einer controller-action kümmert sich um die Schaffung eines Speicher-stream aus dem html für die Seite und konvertiert Sie in pdf und sendet es an den browser.
Code in der Ansicht für die Seite:
var pdfUrl = String.Format ("- Fenster.Lage.href = '{0}';", Html.BuildUrlFromExpressionForAreas(c => c.GeneratePdf(myUrl)));
}
@(Html.Button("btnPdf", "PDF Erzeugen", HtmlButtonType.- Taste, pdfUrl)))
Code in MyController action:
public ActionResult GeneratePdf(string url)
Doc pdfDoc = new Doc();
int docId;
MemoryStream Ausgabestrom = new MemoryStream();
und ein paar andere code für die pdf-Konvertierung..... dann:
byte[] pdfData = pdfDoc.GetData();
Ausgabestrom.Schreiben(pdfData, 0, pdfData.Länge);
Ausgabestrom.Position = 0;
return new FileStreamResult(Ausgabestrom, "application/pdf");
}
Es funktioniert gut, aber die pdf-Datei angezeigt, die im gleichen Fenster/tab. Wie kann ich den stream die Daten in einem neuen Fenster oder tab im browser?
Ich bin ein newbee und sind dankbar für detaillierte Hilfe.
target-Eigenschaft funktioniert nicht in diesem Fall. Ich konnte nicht arbeiten, Fenster.öffnen Sie in der Ansicht " code für den button und ich bin nicht sicher, das würde den trick tun, entweder.
Vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie einen normalen link mit
target="_blank"
Attribut:oder wenn Sie möchten, eine Schaltfläche, die Sie verwenden könnten javascript:
und dann in eine separate javascript-Datei, die Sie verwenden könnten, jQuery und abonnieren Sie für das click-Ereignis für diese Schaltfläche und ein neues Fenster öffnen:
_Layout.cshtml
. Auch sicher sein, dass die.js
Datei mit diesem Skript enthalten ist, die nach jQuery.@Darin Dimitrov , vielen Dank, die Seite war, fehlt die Referenz. Ich fixe das problem, aber es verhält sich seltsam: als ich Das erste mal auf die Schaltfläche klicken, die es nicht tun (nicht, gehen Sie zurück zu einem action im controller.) das zweite mal, dass ich klicken Sie auf die Schaltfläche, es öffnet sich ein neues tab, sondern gibt eine Fehlermeldung, dass er die Ressource nicht verfügbar ist, und es zeigt, es ist auf der Suche für eine Ansicht mit der Bezeichnung " undefined! wenn ich ignorieren Sie diese und gehen Sie zurück zu der ursprünglichen Seite und klicken Sie auf den Knopf zum Dritten mal, dann ist es sich so verhält, wie ich hoffte, es würde auf den ersten Klick: es öffnet sich ein neues tab und zeigt die original-Seite Daten gestreamt formatiert und im pdf alles korrekt! irgendwelche Vorschläge? Ich wirklich schätzen Ihre Hilfe bei diesem. Hier ist mein JS-code: