ASP.NET MVCコントローラからファイルを返すので、AngularJSを使用して添付ファイルとしてダウンロードしたいと思います。AngularJS ASP.NET MVCコントローラのファイルを保存
MVCコントローラ:
return File(renderedBytes, mimeType);
AngularJS:
function generatePDF(reportRequest) {
var reportController = "Report";
var controllerUrl = ngAppSettings.homeBaseUri + reportController + "/GeneratePDF";
var deferred = $q.defer();
$http({
method: "POST",
url: controllerUrl,
data: reportRequest
}).success(function (data, status, headers, cfg) {
//window.open(controllerUrl, "_self", "");
deferred.resolve(data);
}).error(function (err, status) {
deferred.reject(err);
});
return deferred.promise;
};
これについて同様の質問に示唆したように、私はさまざまな方法を試してみたが、私はそれが届きません。
私もthisを試しました。
私のブレークポイントはGeneratePDFコントローラ内で問題なくヒットしますが、それ以降は何も起こりません。私はこれについてどうやって行くのですか?
EDIT:
私もangular file saverを試してみましたが、私はフォーマットがBLOBである必要があり、エラーを取得しています。応答をブロブに変換できるのであれば、これはそれかもしれないと思います。
TIA
これは問題であれば私の角度サービスは$ qサービスを使用していますが、無視することができます。 window.openを使用して、GeneratePDFコントローラのパラメータとしてreportRequestオブジェクトをどのように渡しますか?私はデータ処理のためにそれが必要です。 –
ああ、申し訳ありませんが、少し見落としました。 reportRequestに大量のデータがあるのですか、または「GET」クエリ文字列(クエリ文字列を作成する基本的なプリミティブとも呼ばれます)で表現できるものですか?残念ながら、私はdocをダウンロードするために "POST"を行う方法を知らない。 pdfを生成するために大量のデータを処理する必要がある場合は、それを行い、サーバがGET(window.openを使用して)するために使用できるトークンを戻すようにするか、それは何らかの方法でサーバー上にキャッシュされているFileResultを返します。 – sourdoughdetzel
リクエストにオブジェクトのリストが含まれているため、すべてのデータをクエリ文字列として渡すことはできません。私は最初もそれをやろうと計画していたが、進まなかった。 –