2013-02-01 41 views
0

我有一個返回PDF文檔此控制器操作:MVC3 FileResult和FileStreamResult錯誤

public FileResult getPdf() 
    { 
     System.IO.FileStream fileStream = System.IO.File.OpenRead("myFile.pdf");   
     byte[] bytes = new byte[(int)fileStream.Length]; 
     fileStream.Read(bytes, 0, (int)fileStream.Length); 
     Response.AppendHeader("Content-Disposition", "inline;"); 
     return File(bytes, "application/pdf", "file.pdf"); 
    } 

該代碼工作確定了ActionLink的:

@Html.ActionLink("Download File","getPdf") 

,但不與工作:

<embed id="PdfFile" type="application/pdf" src="/Home/getPdf"/> 

<object id="PdfFile" type="application/pdf" src="/Home/getPdf"/> 

<script type="text/javascript" > 
    $(document).ready(function() { 
     $("#someDiv").load('/Home/getPdf'); 
    }); 
</script> 

這3個選項的作品從視覺工作室的自我主機很好,但是當我部署到IIS7返回「錯誤404未找到」。 ActionLink在IIS7中也能正常工作

這些文件夾對所有用戶都有權限。

我也試過用FileStreamResult和HttpResponse.binaryWrite。 (相同結果)

任何人都可以幫助我嗎?

感謝

回答

0

好吧,這應該給你找什麼

<object data="src="@Url.Action("GetPDF")"" type="application/pdf" width="300" height="200"> 
alt : <a href="data/test.pdf">test.pdf</a> 
</object> 


public FileStreamResult GetPDF() 
{ 
    FileStream fs = new FileStream("filename.pdf", FileMode.Open, FileAccess.Read); 
    return File(fs, "application/pdf"); 
} 
+0

我想在局部視圖中顯示PDF文檔,從控制器。所以不能使用表單。 – Gonzalo

+0

啊誤讀了一秒 – Robert