下载Excel

时间:2019-03-21 00:43:48

标签: javascript asp.net-mvc

下载.csv文件后,我需要向用户发送邮件。我不确定在下载文件后如何设置回调函数。

$.ajax({
    url: '@Url.Action("GetAllCustomer", "Customers")',
    type: 'POST',
    data: { 'customerIds': strCustomerId },
    success: function (result) {
        if (result == "Success") {
            location.href = '@Url.Action("DownloadFile", "Customers", new { extension = "csv"})';
        } else {
            toastLast = toastr.error("No data found", "Generating File");
        }
    }
});

在上面的代码中,我第一次打电话给所有客户。在成功回调上,我正在调用DownloadFile方法来下载csv文件。我需要在下载文件后发送邮件,但我不确定如何知道该文件已下载。或者我可以通过其他方式实现。

请按如下所示找到我控制器的DownloadFile方法。

public ActionResult DownloadFile(string extension)
    {
        var dateTime = DateTime.Now.ToString("M.dd.yy");
        var fileName = dateTime + " Application File." + extension;
        var array = TempData["Output"] as byte[];
        if (array != null)
        {
            var file = File(array, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
            return file;
        }
        else
        {
            return new EmptyResult();
        }
    }

1 个答案:

答案 0 :(得分:0)

请勿使用此行


    location.href = '@Url.Action("DownloadFile", "Customers", new { extension = "csv"})';

改为对Action方法使用ajax请求


    $.ajax({
        type: "POST",  
        url: '@Url.Action("DownloadFile", "Customers")',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(){ 
            //add your sccuess handlings
        }
        error: function(){
            //handle errors
        }
    });