Экспорт данных в Excel с помощью .Net core

#excel #ajax #.net-core #datatable

#excel #ajax #.net-core #datatable

Вопрос:

Я пытаюсь экспортировать данные в Excel. Я столкнулся с проблемой с Tempdata и ActionResult. Я получаю следующую ошибку: не удалось загрузить ресурс: сервер ответил статусом 500 () при методе действия ExportExcelGrid().

     [HttpPost]
    public void ExportExcelGrid(DataTableAjaxPostModel dataTableAjaxPostModel)
    {
        try
        {
            byte[] fileContent = null;

            fileContent = _specFinderExportFlow.ConvertToExportable(dataTableAjaxPostModel, User.Identity.Name);
            TempData["FileContent"] = fileContent;
        }

        catch (Exception ex)
        {
            throw ex;
        }
    }

    [HttpGet]
    public ActionResult ExportExcelGrid()
    {
        try
        {

            if (TempData["FileContent"] != null)
            {
                byte[] fileContent = (byte[])TempData["FileContent"];
                string dateTime = DateTime.Now.ToString("ddMMyyyy");
                string fileDownloadName = UserConstants.EXPORT_FILE_NAME   dateTime   UserConstants.EXPORT_FILE_EXT;

                return File(fileContent, ExcelExportHelper.ExcelContentType, fileDownloadName);
            }

            else
                return null;

        }

        catch (Exception ex)
        {
            throw ex;
        }
    }
 

И в моем скрипте я использовал вызов ajax для получения данных.

          $('#productexport').on('click', function () {
         $.ajax({
        type: "POST",
        url: $("#ExportExcelGrid").val(),
        data: findertable.ajax.params(),
        success: function (response) {
            window.location.href = $("#ExportExcelGrid").val();
        },
        failure: function (response) {
        },
        error: function (response) {
        }
    });
});
 

После ExportExcelGrid(DataTableAjaxPostModel dataTableAjaxPostModel) должен быть вызван метод ExportExcelGrid(). Но он не вызывается. Если я использую ViewData, оно равно нулю. Кто-нибудь может сказать мне, где я ошибаюсь.