0

私の要件は、画像がクリックされるたびにブラウザーで 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 を返すという投稿を見たことがありますか? しかし、解決策が提供されていないため、再度投稿します。これをどのように達成できるか教えてもらえますか?

ありがとう

4

1 に答える 1

1

2つのこと。

  1. 通常の投稿ではなく、なぜ ajax 経由で投稿を行っているのですか? 通常の投稿では、コードはおそらく機能します。

  2. 本当に ajax を使用する必要がある場合は、ajax 呼び出しの成功時にデータ オブジェクトで結果を受け取ります。それで何もしていないことがわかります。そのため、何も起こっていません。

于 2012-12-22T00:43:32.413 に答える