我是MVC的新手,并试图找到一种方法来执行以下操作:
基本上,我有一个网址http://dev.test.com/api/data/abczyz12345,当从用户界面点击/打开时,结果显示为:
"email","f_name","l_name","c_name","ids" "abc1@test.com","C G","Wander","C1","" "abc2@Atest.COM","Virginia","Dale","A & D","" .... and so on....
在我的视图中,我将上述链接显示为锚点,当用户点击它时 - 它会在同一页面上打开。 有没有办法当用户点击链接时 - 而不是在网页上打开它作为CSV文件打开(给用户提供下载选项)?
答案 0 :(得分:1)
是的,您必须使用HTTP标头指定它所使用的文件类型。以下是使用PHP的示例:
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename="filename.csv"');
echo '"email","f_name"...
浏览器会将输出识别为CSV并相应地做出响应,很可能是文件下载提示。
ASP.net也是如此,但我不确定它是如何完成的。
答案 1 :(得分:1)
public ActionResult Index()
{
Response.Clear();
Response.Clear();
Response.ContentType = "application/CSV";
Response.AddHeader("content-disposition", "attachment; filename=\"filename.csv\"");
String temp = "email,f_name,l_name,c_name,ids,abc1@test.com,CG,Wander,C1,abc2@Atest.COM,Virginia,Dale,A & D";
Response.Write(temp);
Response.End();
return View();
}
答案 2 :(得分:0)
有几种方法可以解决这个问题,我不能完全确定目标受众,环境以及这些数据的总体目标。
我将使用厨房水槽路线(您可以使用页面中的数据并允许将其导出到文件中):
您可以使用jquery将数据包装到文件中以供下载。
本教程在服务器端使用php,但如果我了解您的要求,则需要在客户端处理该数据:
http://tutorialzine.com/2011/05/generating-files-javascript-php/
参见以下部分: 资产/的script.js
摘录:
$(document).ready(function(){
$('#download').click(function(e){
$.generateFile({
filename : 'export.txt',
content : $('textarea').val(),
script : 'download.php'
});
e.preventDefault();
});
$('#downloadPage').click(function(e){
$.generateFile({
filename : 'page.html',
content : $('html').html(),
script : 'download.php'
});
e.preventDefault();
});
});
动态生成文档的一个很好的例子。