我正在尝试将文件返回给用户。
" GetExcel"似乎工作和调试我可以看到" ba"有数据。
该方法完成但是似乎没有任何内容返回给浏览器 - 我希望看到文件下载对话框。
C#
public FileResult GetExcel()
{
using (ExcelPackage pck = new ExcelPackage())
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");
ws.Cells["A1"].Value = "LBHERE";
var ba = pck.GetAsByteArray();
return File(ba, "text/plain", "testFile.txt");
}
}
Javascript
function clickedTest() {
alert("Test clicked");
$.get(myPath + "/Employee/GetExcel", { }, function (data) {
})
};
答案 0 :(得分:0)
jQuery的$.get()
函数通过AJAX将数据从网页提取到客户端脚本中。如果要下载文件,这不是您想要执行的操作。相反,您应该打开一个新选项卡设置为您要下载的文件的URL。
试试这个:
function clickedTest() {
window.open(myPath + "/Employee/GetExcel", "_blank");
}
如果您的浏览器仍未启动下载,而只是显示文件,则可能需要更进一步。
在服务器端代码的某处,当您有权访问Response对象时,应将Content-Disposition标头设置为附件,并为您提供的电子表格提供文件名。这将通知您的浏览器您要求的文件是要下载的,而不是显示的。
这可以按如下方式完成:
Response.AddHeader("Content-Disposition", "attachment;filename=myfile.xls")
当然,请使用电子表格的正确文件名替换myfile.xls
。