私の要件は、画像がクリックされるたびにブラウザーで PDF を開く必要があることです。Jquery ajax [POST call] を使用して ASP.NET MVC 側を呼び出すと、応答でファイルが返されます。クライアントからサーバーに大量のデータを渡す必要があるため、jquery 側から POST が必要です。
HTML 部分:
<span data-id='printSettings' title='Generate PDF' class="preferenceSettings"></span>
JS パーツ: これは、Generate PDF アイコンがクリックされると起動されます。
var textToSend = $('.microChartTable', self.element)[0];
var dataToSend = { htmlContent: textToSend.outerHTML };
$.ajax({
url: "/EADashboard/ConvertToPDF",
data: JSON.stringify(dataToSend),
type: 'POST',
contentType: 'application/json',
success: function (data) {
} // -- success ends here
});
ASP.NET 側: 私のコントローラーには、次のコードがあります。
[HttpPost]
public FileResult ConvertToPDF(HtmContent content)
{
string fileName = Server.MapPath("~/SeedData/data.pdf");
string contentType = "application/pdf";
return new FilePathResult(fileName, contentType);
}
これで、ブラウザ側で PDF ファイルが開かれていないというだけで、PDF 生成コードは正しくなりました。JSON と MVC を使用してブラウザに PDF を返すという投稿を見たことがありますか? しかし、解決策が提供されていないため、再度投稿します。これをどのように達成できるか教えてもらえますか?
ありがとう