2016-06-13 3 views
1

Expanding on this question、読んでいるPDFをどのように指定できるかを調べるのには苦労しています。どのPDFをレンダリングするかを指定するときにPDFドキュメントを読む

PDFファイルを生成するWkHtmlToPdfで自分のPDFを作成しています。私はその後、私のデータベースにPDFバイトを保存していると私は、ビューに表示し、再びそれを読みたい:

public void GetPDF(int id) 
{ 
    // get the byte array for the PDF out of the database 
    var Pdf = db.Invoices.FirstOrDefault(x => x.Id == id).Document; 

    //FileStream Stream = new FileStream(filePath, FileMode.Open, FileAccess.Read); 
    //return File(Stream, "application/pdf"); 

    // this code reads from a file but I need to read the byte array 
    // back out so that it displays as a PDF 
} 

私の見解では、私がリンクされ、問題の答えは1としてこれをやっています:

<object data='@Url.Action("GetPDF")'></object> 

私はGetPDF方法に請求書IDパラメータを渡すにはどうすればよいですか?

これを行うより良い方法はありますか?ここで

+0

からidを持つアクションを呼び出す方法を示しましたか? – Nkosi

答えて

2
@Url.Action("GetPDF", new { id = 1 }) 
+0

私は本当にそれについて考えていたはずですが、私はいつものように過度に複雑になっていたと思います^^ – Ortund

2

はPDF

public ActionResult GetPDF(int id) { 
    // get the byte array for the PDF out of the database 
    var Pdf = db.Invoices.FirstOrDefault(x => x.Id == id).Document; 
    // return Pdf content 
    return File(Pdf, "application/pdf");  
} 

Controller.Fileが返されるファイルコンテンツのbyte[]を取るオーバーロードされたメソッドを持っているとして、それが表示されるようにバックアウトされたバイト配列を読み取る方法です。バイト配列を渡した結果をそのメソッドに返します。

そして@RosdiKasimはすでにどのようにこの問題が解決されたビュー

@Url.Action("GetPDF", new { id = 1 }) 
関連する問題