Приведенный ниже метод ExportExcel получен из контроллера, который вызывается Ajax методом getExcelDataByPost.
В ответе getExcelDataByPost я вызвал метод GET для DownloadExcel в контроллере, с которым я столкнулся, проблема в том, что я хочу сохранить свои данные, пока метод GET, называемый DownloadExcel, использует Tempdata, но Tempdata не работает. net core.
[HttpPost]
public IActionResult ExportExcel(List<string> wfsId, List<string> centerId, List<string> poolId, List<string> payer, List<string> csId, List<string> agingBucket, int timezoneOffset)
{
try
{
var values = iclmSvc.ExportExcel(wfsId.Select(int.Parse).ToList(), centerId, poolId, payer, csId.Select(int.Parse).ToList(), agingBucket.Select(int.Parse).ToList()).ToList();
string fileGuid = Guid.NewGuid().ToString();
values.ForEach(v =>
{
v.MO = v.MO.AddMinutes(-timezoneOffset);
v.AOn = v.AOn.HasValue ? v.AOn.Value.AddMinutes(-timezoneOffset) : v.AOn;
});
var dataTable = ExcelHelper.ToDataTable<ByramClaimsforExcelVM>(values);
var memoryStream = ExcelHelper.ExportDataSet(dataTable);
memoryStream.Seek(0, SeekOrigin.Begin);
TempData[fileGuid] =memoryStream.ToArray();
string fileName = "General";
fileName = string.Format("{0}.xlsx", fileName);
var retvalue = new { FileGuid = fileGuid, FileName = fileName };
return Ok(retvalue);
// return File(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx");
}
catch (Exception e)
{
return Json(JsonResponseFactory.ErrorResponse(e.ToString()));
}
})
---------------------------------------------------------------------------------------------------------
>function getExcelDataByPost() {
$('#reportdownload').on("click", function () {
console.log(JSON.stringify({ wfsId: $('#armsstatusid').val(), centerId: $('#centerid').val(), poolId: $('#poolid').val(), payer: $('#payerid').val(), csId: $('#claimstatusid').val(), agingBucket: $('#agingbucketid').val(), timezoneOffset: new Date().getTimezoneOffset() }))
$.ajax({
dataType: "json",
type: "POST",
url: baseUrl + 'ClaimInfo/ExportExcel',
data:{ wfsId: $('#armsstatusid').val(), centerId: $('#centerid').val(), poolId: $('#poolid').val(), payer: $('#payerid').val(), csId: $('#claimstatusid').val(), agingBucket: $('#agingbucketid').val(), timezoneOffset: new Date().getTimezoneOffset() },
success: function (response) {
console.log(response, "Hello");
if (response != null) {
window.location=baseUrl + 'ClaimInfo/DownloadExcel?fileGuid=' + response.fileGuid + '&fileName=' + response.fileName;
}
}, error: function (error) {
console.log(error, "error");
}
});
});
}
---------------------------------------------------------------------------------------------------------
>[HttpGet]
public ActionResult DownloadExcel(string fileGuid, string fileName)
{
if (TempData[fileGuid] != null)
{
// var deserializeObject = JsonConvert.DeserializeObject(TempData[fileGuid].ToString());
// byte[] data = Encoding.ASCII.GetBytes(deserializeObject.ToString());
byte[] data = TempData[fileGuid] as byte[];
return File(data, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
}
else
{
return new EmptyResult();
}
}