#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, оно равно нулю. Кто-нибудь может сказать мне, где я ошибаюсь.