我正在使用.NET4 MVC3 VS2010。我們使用ABCpdf將html轉換爲pdf並將其流式傳輸到瀏覽器。問題是我需要找出一種方法來在新窗口或標籤中打開pdf。我已經閱讀了一堆關於類似問題的帖子,但是對於這個特定案例我找不到任何幫助。 單擊頁面上的按鈕(而不是鏈接)後,控制器操作會負責從該頁面的html創建內存流,然後將其轉換爲pdf並將其發送到瀏覽器。點擊一個按鈕,在新窗口中打開一個流頁面或標籤
代碼在該頁面的視圖: VAR pdfUrl =的String.Format( 「window.location.href = '{0}';」,Html.BuildUrlFromExpressionForAreas(C => c.GeneratePdf(myUrl))) ; } @(Html.Button( 「btnPdf」, 「生成PDF」,HtmlButtonType.Button,pdfUrl)))
代碼在行動myController的: 公衆的ActionResult GeneratePdf(字符串URL) 文件pdfDoc =新的文件( ); int docId; MemoryStream outputStream = new MemoryStream();
和一堆其他的pdf轉換代碼.....然後: byte [] pdfData = pdfDoc.GetData(); outputStream.Write(pdfData,0,pdfData.Length); outputStream.Write(pdfData,0,pdfData.Length); outputStream.Position = 0; 返回新的FileStreamResult(outputStream,「application/pdf」); }
它工作正常,但pdf顯示在相同的窗口/選項卡。如何將數據流式傳輸到瀏覽器中的新窗口或選項卡? 我是一個新手,並會感謝詳細的幫助。 目標屬性不適用於這種情況。我無法工作window.open到按鈕的視圖代碼,我不知道這也會做的伎倆。提前
感謝您的快速響應。我制定了類似於第二個建議的代碼,但是使用Firebug,我得到「$未定義」 – FZF 2011-03-13 23:03:57
@FZF,這是jquery。它是否包含在你的頁面中? – 2011-03-13 23:04:39
它包含在母版頁中。我會進一步檢查。 – FZF 2011-03-13 23:14:54