Функция обратного вызова Javascript после загрузки Excel - PullRequest
0 голосов
/ 21 марта 2019

Мне нужно отправить письмо пользователю после загрузки .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 голосов
/ 21 марта 2019

Не используйте эту строку


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

Вместо этого используйте ajax-запрос к методу Action


    $.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
        }
    });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...