我必须编写一个按钮,单击后将 csv 文件下载到客户端的计算机上(这是一个网络应用程序)
所以,做了一些研究,把所有的线索放在一起,想想看,它不起作用。
我现在正在尝试得到这个:
protected void btnDownload_onClick(object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=tmp.csv");
Response.ContentType = "text/csv";
Response.Write("one,two,three,four,five");
Response.End();
}
根据谷歌上出现的博客,这就是我生成该 csv 并下载它所需的全部内容。
只是,它不起作用,我不知道它出了什么问题。
1) firebug 检查:响应为 EMPTY。
2) VS 调试,奇怪地在 Response.End()
行之后停止,并提示找不到内容。
我错过了什么吗? 非常感谢。非常喜欢。
编辑:我刚刚意识到一些事情,这是一个子页面,母版页中有一个更新面板。这可能是问题的原因吗?如果是这样,我怎样才能取消这个子页面的ajax回发?
最佳答案
阅读your comments并编辑,看起来您想取消子页面中这一按钮的 ajax 回发,并且您的更新面板位于母版页中,您无法访问它。
如果我的详细信息正确,只需在您的子内容页的 PageLoad() 上添加以下代码:
ScriptManager sm = ScriptManager.GetCurrent(Page);
if (sm != null)
sm.RegisterPostBackControl(btnDownload);
//btnDownload = the button ID, just copied from your code.
这将强制整页回发并且您的文件将被下载。
关于asp.net - 无法让 C# 制作可下载的 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6458027/