ビューでHtml.ActionLinkを使用して、コントローラーアクションメソッドに送信しようとしています。私のアクションの戻りタイプはFileContentResultであるため、これを非ajax送信として実行しています(この情報を提供してくれた@Darinに感謝します)。ただし、アクションリンクがアクションメソッドにビューを投稿していません。以下は私のコードです
ビューのコード(部分ビュー)
@Html.ActionLink("Save", "SaveFile", "ui", new { htmlResult="asdf"})
ここで、UIはコントローラー名、SaveFileはメソッド名です。
コントローラ方式
public FileContentResult SaveFile(string htmlString)
{
...
...
pdfBytes = pdfConverter.GetPdfBytesFromHtmlString(html);
var cd = new ContentDisposition
{
FileName = "MyFile.pdf",
Inline = false
};
Response.AddHeader("Content-Disposition", cd.ToString());
return File(pdfBytes, "application/pdf");
}
ブラウザのアドレスバーから同じURLを押すと、それがヒットし、問題なくpdfファイルが返されます。同じように、これはアクションリンクを介して発生していません。また、アクションリンクを@using Html.BeginForm()....の中に入れてみましたが、役に立ちませんでした。
ここでどこが間違っているのか教えていただけますか?
ありがとう!