. net core mvc get метод контроллера возвращает загружаемый файл, но не работает? - PullRequest
1 голос
/ 03 марта 2020

У меня есть List<model>, и я преобразую в JSON в Javascript, и когда я нажимаю кнопку, вызываю метод контроллера и передаю параметр следующим образом:

$('#exceldownload').click(function(){

    var json = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.ReportListModel,Newtonsoft.Json.Formatting.Indented));
    json = JSON.stringify(json);


    window.location = "@Url.Action("ReportExcel","Report")?model="+json+"";

});

И код контроллера:

public FileResult ReportExcel(string model)
        {
            var b = JsonConvert.DeserializeObject<List<ReportListModel>>(model);
            if (b.Count == 0)
            {
                return File(Encoding.UTF8.GetBytes("empty"), "text/plain", "empty");
            }
            else
            {
                DataTable table = (DataTable)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(b), (typeof(DataTable)));

                using (var excelPack = new ExcelPackage())
                {
                    var ws = excelPack.Workbook.Worksheets.Add("WriteTest");
                    ws.Cells.LoadFromDataTable(table, true, OfficeOpenXml.Table.TableStyles.Light8);
                    var FileBytesArray = excelPack.GetAsByteArray();
                    return File(FileBytesArray, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "test.xlsx");
                }
            }
        }

Но когда я нажимаю кнопку и получаю вот так:

Этот сайт не может быть достигнут, Localhost отказался подключиться, ERR_CONNECTION_CLOSED

Я хочу, чтобы, когда я нажимаю кнопку скачать Excel файл.

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

В этой строке происходит сбой:

window.location = "@Url.Action("ReportExcel","Report")?model="+json+"";

Измените его на

window.location = @Url.Action("ReportExcel","Report") + "?model="+json+"";
0 голосов
/ 03 марта 2020

Попробуйте отладить код ASP. NET. Возможно, произошла внутренняя ошибка сервера.

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