1

私が実装しようとしているのは、ファイル保存ダイアログを使用して、ユーザーがグリッド データを Excel ファイルにエクスポートしてダウンロードできるようにすることです。

これが私が今それをどのようにコーディングしたかです-

JavaScriptで -

$.post("/irn/Identifier/Download", { "columnValues": columnValues });

識別子コントローラのダウンロード アクションで -

public FileResult Download(string columnValues)
{
    DTData headlineRows = (DTData)Newtonsoft.Json.JsonConvert.DeserializeObject(columnValues, typeof(DTData));
    var e = new Services.DownloadToExcel();
    return File(e.WriteData(headlineRows), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "testfile.xlsx");
}

DownloadToExcel クラスの WriteData 関数内にある -

//Here, I'm using the EPPlus library to write the column data to an excel file and then i'm returning the data as a byte array -

//Some code that writes the data
return packages.GetAsByteArray();

このコードを実行すると、ブラウザにファイル保存ダイアログが表示されるはずですが、何も起こりません。C# または JavaScript 側にエラーはありません。誰かが私が間違っている可能性があることを教えてもらえますか?

4

4 に答える 4

0

ファイルのダウンロードに役立つように、IFrame を使用する必要があります。

function postToIframe( url,data) {
    var target = "downloadIFrame";
    $('<iframe  name="' + target + '" style="display:none"/>').appendTo('body');
    $('body').append('<form action="' + url + '" method="post" target="' + target + '" id="postToIframe"></form>');
    $.each(data, function (n, v) {
        $('#postToIframe').append('<textarea name="' + n + '">' + v + '</textarea>');
    });
    $('#postToIframe').submit().remove();
}
于 2015-07-21T10:01:20.777 に答える
0

Internet Explorer でサイトをテストしている場合は、次のことを試してください。

  • [インターネット オプション] -> [詳細設定] を開きます。[リセット] をクリックします。また、詳細設定の復元を選択することもできます。

  • [インターネット オプション] -> [セキュリティ] を開きます。ゾーンがまったく変更されていない場合は、[すべてのゾーンをデフォルト レベルにリセット] をクリックします。

これらの設定を変更すると、Internet Explorer がファイルのダウンロードを受け入れるかどうかに影響する場合があります。

詳細はこちら: http://answers.microsoft.com/en-us/ie/forum/ie8-windows_other/ie-8-will-not-let-me-download-any-files-music-pdf/bc59ba24- 866b-4dbf-93f2-85ebb9912c2c

于 2013-04-10T19:52:32.643 に答える