19

PDFブラウザでファイルを直接表示したいと考えています。この質問は既に聞かれていることは知っていますが、自分に合った解決策が見つかりません。

これまでの私のアクションのコントローラーコードは次のとおりです。

public ActionResult GetPdf(string fileName)
{
    string filePath = "~/Content/files/" + fileName;
    return File(filePath, "application/pdf", fileName);
}

これが私の見解です:

@{
   doc = "Mode_d'emploi.pdf";
} 

<p>@Html.ActionLink(UserResource.DocumentationLink, "GetPdf", "General", new { fileName = doc }, null)</p>

リンクにマウスを合わせると、次のリンクが表示されます。

ここに画像の説明を入力

私のコードの問題は、pdfファイルがブラウザーで表示されないことですが、ファイルを開くか保存するかを尋ねるメッセージが表示されます。

ここに画像の説明を入力

私はそれが可能であることを知っており、ブラウザでpdf直接表示できる別の Web サイトで既にテストしているため、ブラウザがサポートしています。

たとえば、(別の Web サイトの) リンクにマウスを置いたときのリンクは次のとおりです。

ここに画像の説明を入力

ご覧のとおり、生成されたリンクに違いがあります。これが役に立つかどうかはわかりません。

pdfブラウザで直接表示するにはどうすればよいですか?

4

7 に答える 7

24

を返す代わりに、を返すようにしてFileくださいFileStreamResult

public ActionResult GetPdf(string fileName)
{
    var fileStream = new FileStream("~/Content/files/" + fileName, 
                                     FileMode.Open,
                                     FileAccess.Read
                                   );
    var fsResult = new FileStreamResult(fileStream, "application/pdf");
    return fsResult;
}
于 2013-02-05T18:48:15.613 に答える
11

コードを次のように変更します。

       Response.AppendHeader("Content-Disposition","inline;filename=xxxx.pdf");
       return File(filePath, "application/pdf");
于 2015-04-05T19:08:57.460 に答える