所以我正在尝试创建一个下载按钮,用于创建一个填充了数据表中数据的csv文件。我试图在服务器端执行此操作(希望使此按钮适用于chrome / ie / firefox等),似乎没有任何事情发生,我似乎无法理解为什么。
protected void downloadBtn_Click(object sender, EventArgs e)
{
Response.Clear();
Response.ContentType = "text/csv";
Response.AddHeader("content-disposition", "attachment; filename=Test.csv");
Response.Write("blahblahblah");
Response.End();
}
答案 0 :(得分:2)
所以这就是我需要添加来修复我的问题。我使用UpdatePanel作为我的下载按钮,因此我需要在服务器端的Page_Load上添加以下行。
ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
scriptManager.RegisterPostBackControl(this.downloadBtn);
可以在此处找到更多信息:link
这解决了我“在IE / Firefox / Chrome上下载用户生成的数据”问题。
答案 1 :(得分:1)
如果您在页面上展示<input type="button">
,那么您的方法可能甚至没有被调用,因为默认情况下按钮不提交表单或向服务器发出请求。
在此示例中,所有三个元素都将下载Test.csv:
<html>
<body>
<form id="downloadForm" method="get" action="/downloads/Test.csv">
<input type="button" value="Get File" onclick="javascript:document.getElementById('downloadForm').submit()">
<input type="submit" value="Submit">
</form>
<a href="/downloads/Test.csv">Test.csv</a>
</body>
</html>
如果这不是问题,那么我认为可能需要提供更多的代码和/或细节来为您提供更好的答案。