2016-09-08 5 views
-3

Ich verwende iTextSharp, um PDF in einer .NET-Anwendung zu erstellen. Ich muss das PDF nicht auf einem Server speichern/schreiben. Erstellen Sie einfach eine Datei auf dem lokalen Computer des Benutzers. Posted Controller unten. Ich bin mir nicht sicher, wo ich falsch liege. 'Return-Pfad' wirft einen Fehler:iTextsharp PDF Generierungsfehler

"Fehler CS0029 kann nicht implizit Typ 'string' zu konvertieren 'System.Web.Mvc.FileResult'"

[HttpPost] 
    public FileResult DailyReport(string path ="") 
    { 
     path = !String.IsNullOrWhiteSpace(path) ? path : String.Format("~/downloads/daily-report.pdf"); 
     var report = new Document(PageSize.LETTER, 10, 10, 10, 10); 
     PdfWriter.GetInstance(report, new FileStream(MapPath(path), FileMode.OpenOrCreate)); 
     report.Open(); 

     var table = new Table(2, 1) { Width = 100, Border = 0, Cellpadding = 2 }; 

     table.AddCell(
       new Cell(new Paragraph("Daily Schedule", new Font(Font.TIMES_ROMAN, 18, Font.BOLD))) 
       { 
        Border = 0, 
        HorizontalAlignment = Element.ALIGN_CENTER, 
        Colspan = 2 
       }); 
     table.AddCell(new Cell { Colspan = 2, Border = 0, Leading = 2 }); 

     report.Add(table); 
     report.Close(); 

     return path; 
    } 
    public static string MapPath(string path) 
    { 
     return (path.StartsWith("~") ? System.Web.HttpContext.Current.Server.MapPath(path) : path); 
    } 

Wie dieses Problem zu beheben Error ?

+0

Da Sie uns nicht mitgeteilt haben, welches Problem Sie haben, haben Sie auch keine Frage gestellt, wir sind uns auch nicht sicher, wo Sie falsch liegen. Erhalten Sie einen Fehler? Was macht es und wie unterscheidet es sich von dem, was Sie erwarten? – Amy

+0

@Amy Aktualisierte Frage. Getting "Fehler CS0029 Kann den Typ 'string' nicht implizit in 'System.Web.Mvc.FileResult' konvertieren" " –

Antwort

2

Ihre Methode deklariert eine FileResult Instanz

public FileResult DailyReport(string path ="") 

aber Sie string

return path; 

und .Net zurückkehren zurückzukehren hat keine Ahnung, wie zu machen, dass string eine FileResult. Somit kann

Fehler CS0029 nicht implizit Typ 'string' in 'System.Web.Mvc.FileResult' konvertieren

sollten Sie einfach eine FileResult Instanz statt zurückgeben, z

return new FilePathResult(path, "application/pdf");