1

私のビューには、現在のデータ ビューを CSV でエクスポートするためのボタンがあります。これは、コントローラー内のメソッドへの単純なリンクです。

<input type="button" value="Exporter" id="btnexport" class="btnsearch" onclick="location.href='@Url.Action("ExportCSV", "AuditAddins")'" />

そしてコントローラーメソッド

public void ExportCSV()
{
    auditAddins = AddinsCache.AuditAddinsCache;
    var sw = new StringWriter();
        sw.WriteLine(String.Format("{0};{1};{2};{3};{4}", "Date", "AddinName", "IsAddinActive", "UserName", "PcName"));
        foreach (var record in auditAddins)
        {
            sw.WriteLine(String.Format("{0};{1};{2};{3};{4}", record.Date, record.AddinList.AddinName, record.IsAddinActive, record.Users.UserName, record.Pc.PcName));
        }
        Response.Clear();
        Response.AddHeader("Content-Disposition", "attachment; filename=Export.csv");
        Response.ContentType = "text/csv";
        Response.Write(sw);
        Response.End();
}

うまくいっています。ただし、3 つのデザイン モードがあり、それぞれに独自の列の順序があるため、このメソッドにパラメーターを送信する必要があります。そのため、パラメーターを送信するための jquery/ajax スクリプトを作成しました。

$("#btnexport").click(function () {
    var index = $('#CritID').find('option:selected').val();
    var d = { chx: index}
    $.ajax({
        url: "/AuditAddins/ExportCSV",
        type: "POST",
        data: d,
        success: function (data) {
            alert("Export ok !");
        },
    });
});

主な目的は、エクスポート方法を次のように変更することです。

 public void ExportCSV(int chx)
    {
        ...
        switch (chx)
        {
            case 1:
                sw.WriteLine(String.Format("{0};{1};{2};{3};{4}", "Date", "AddinName", "IsAddinActive", "UserName", "PcName"));
                break;
            case 2:
                sw.WriteLine(String.Format("{0};{1};{2};{3};{4}", "Date", "UserName", "PcName","AddinName", "IsAddinActive"));
                break;
            ...
        }

問題は、IE のダウンロード ウィンドウが表示されなくなったことです。私は actionresult メソッドを試しましたが、どちらも機能しません。

4

1 に答える 1

0

POSTパラメータを送信するために使用する必要はありません。

GET代わりに、リクエストにパラメーターを追加できます。

/AuditAddins/ExportCSV?index=2

パラメータが指定されていない場合は、デフォルトで 1 になります。

複数のパラメーターを送信するには、&それらを区切るために使用できます。

/AuditAddins/ExportCSV?index=2&param2=123

これにより、ダウンロード ウィンドウの問題も解決するはずです。

于 2016-02-10T14:41:26.300 に答える