Javascript .net core mvc get controller方法返回下载文件,但不工作?

Javascript .net core mvc get controller方法返回下载文件,但不工作?,javascript,c#,html,model-view-controller,Javascript,C#,Html,Model View Controller,我有列表,我在Javascript中转换为JSON,当我单击按钮调用控制器方法时 然后像这样传递参数: $('#exceldownload').click(function(){ var json = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.ReportListModel,Newtonsoft.Json.Formatting.Indented)); json = JSON.stringify(jso

我有
列表
,我在Javascript中转换为JSON,当我单击按钮调用控制器方法时 然后像这样传递参数:

$('#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");
                }
            }
        }
公共文件结果报告Excel(字符串模型) { var b=JsonConvert.DeserializeObject(模型); 如果(b.Count==0) { 返回文件(Encoding.UTF8.GetBytes(“empty”)、“text/plain”、“empty”); } 其他的 { DataTable=(DataTable)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(b),(typeof(DataTable)); 使用(var excelPack=new excelPack()) { var ws=excelPack.Workbook.Worksheets.Add(“WriteTest”); LoadFromDataTable(table,true,OfficeOpenXml.table.TableStyles.Light8); var FileBytesArray=excelPack.GetAsByteArray(); 返回文件(FileBytesArray,“application/vnd.openxmlformats officedocument.spreadsheetml.sheet”,“test.xlsx”); } } } 但当我点击按钮并得到如下结果时:

$('#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+"";

});
无法访问此站点, Localhost拒绝连接, 错误\u连接\u关闭


我想在单击按钮时下载excel文件。

尝试调试ASP.NET代码。可能发生内部服务器错误。

尝试调试ASP.NET代码。可能发生了内部服务器错误。

该行正在崩溃:

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

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

它在这条线上崩溃了:

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

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

我尝试了调试模式控制器方法,但此方法无法在调试模式下工作。当我单击按钮但从未进入方法时。好的,那么看起来该方法实际上从未被调用。可能会将“@Url.Action”(“ReportExcel”,“Report”)?model=“+json+”更改为“@Url.Action”(“ReportExcel”,“Report”)?model=”+jsonI尝试了调试模式控制器方法,但此方法无法在调试模式下工作。当我单击按钮但从未进入方法时。好的,那么看起来该方法实际上从未被调用。可能将“@Url.Action”(“ReportExcel”,“Report”)?model=“+json+”更改为“@Url.Action”(“ReportExcel”,“Report”)?model='+jsonI认为发送请求Url错误我认为发送请求Url错误