我正在尝试创建一个下载 CSV 文件的链接。我目前的解决方案是监听该链接上的点击事件,然后附加一个隐藏的表单,然后提交该表单。我想将窗口对象设置为与创建 CSV 的处理程序的链接相等。但是它似乎不起作用,这是我到目前为止所拥有的。我对使用任何其他库不感兴趣。
这是用于创建虚拟 CSV 文件的处理程序代码:
else if(action == "exportalldata")
{
context.Response.Clear();
context.Response.ContentType = "application/csv";
context.Response.AddHeader("Content-Disposition", "attachment; filename=yourData.csv");
context.Response.Write("\"ID\", \"Description\", \"DTA\"\n");
context.Response.Write("\"\test1\",\"test2\",\"test3\"\n");
context.Response.End();
}
表单方法,当单击链接时,该事件触发此(有效):
$form = $(document.createElement('form'))
.attr({
action: 'svc/export.ashx/exportAllData',
method: 'POST'
})
.css('display', 'none')
.appendTo('body');
$form.submit();
$form.empty().remove();
我想做以下事情:
<a id = "exportData" href="javascript:window.location='svc/export.ashx/exportAllData'">Export Variable List</a>
当我这样做时,所发生的只是我得到一个空白屏幕,并且没有下载任何 CSV 文件。如果链接也不会引导用户离开包含链接的页面,那就太好了。我尝试设置 target = "_blank" 但这不起作用。