So rendern Sie eine ASP.NET MVC-Ansicht im PDF-Format

Für diese Frage arbeite ich mit dem Html-zu-PDF-Konvertierungsprogramm von ExpertPDF (obwohl ich für andere Bibliotheken offen bin, wenn es genügend Dokumentation gibt).

Kurz gesagt, ich habe eine Ansicht, die auf eine bestimmte Weise formatiert ist, und ich möchte sie als PDF-Dokument rendern, das der Benutzer auf der Festplatte speichern kann.

Was ich bisher habe, ist ein PrintService (der eine IPrintService-Schnittstelle implementiert) und diese Implementierung hat zwei Überladungen für PrintToPDF (), eine, die nur eine URL und eine andere, die eine HTML-Zeichenfolge akzeptiert, und beide, die ein Byte [] zurückgeben. Ich habe nur die Details der zweiten Überladung herausgearbeitet, für die der HTML-String erforderlich ist.

Was ich von meinem Controller aus machen möchte, ist so etwas wie:

public FileStreamResult Print(int id)
{
    var model = _CustomRepository.Get(id);
    string renderedView = SomethingThatRendersMyViewAsAString(model);
    Stream byteStream = _PrintService.PrintToPdf(renderedView);
    HttpContext.Response.AddHeader("content-disposition", 
        "attachment; filename=report.pdf");
    return new FileStreamResult(byteStream, "application/pdf");  
}

was theoretisch ein PDF auf die Seite rendern würde. Es ist das "SomethingThatRendersMyViewAsAString", mit dem ich nach Hilfe suche. Gibt es eine schnelle Möglichkeit, die Zeichenfolgendarstellung einer Ansicht abzurufen? Oder sollte ich mich einfach an die URL-Überladung halten und eine URL an die Ansicht übergeben ... Irgendwelche anderen Gedanken?

Vielen Dank!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage