如何导出多个csv文件

时间:2013-12-24 01:23:56

标签: javascript asp.net-mvc csv

我有一个按钮,当我点击时,我想要将几个CSV文件一起导出。但我不知道该怎么做。 (我有'Function1'和'Function2',当点击按钮时,我希望调用这两个函数,并且每个函数都生成一个CSV文件)

我有一些javascript代码来调用控制器中的函数:

$('#exportReport').click(function () {
            var originalAction = document.forms[0].action;
            if (originalAction.indexOf("CorporateProfile") !== -1) {
                document.forms[0].action = "/web/admin/configurationreports/Function1";

                //document.forms[1].action = "/web/admin/configurationreports/Function2";
                document.forms[0].submit();
                document.forms[0].action = originalAction;    
            }                
            return false;
        });

所以当点击'exportReport'按钮时,我想在控制器中同时调用'Function1'和'Function2'

以下是'Function1'的外观:

    [HttpPost]
    public ActionResult Function1(ConfigurationReportsCorporateProfileViewModel viewModel)
    {
       //inside this I generate a CSV file
        var bytes = encoding.GetBytes(stringBuilder.ToString());
        return File(bytes, "text/csv", "function1.csv");
    }

我也想调用'Function2',但我不知道该怎么做。 (它会像添加到javascript document.forms.action吗?)

2 个答案:

答案 0 :(得分:1)

您需要压缩文件或提出2个请求。 见已经回答:https://stackoverflow.com/a/1060576/532772

答案 1 :(得分:0)

不确定是否可以返回多个文件。但是,我所做的是动态创建一个zip,将两个CSV文件添加到它并返回zip文件。这真的很容易。您可以使用ICSharpCode.SharpZipLib.Zip API。