asp.net - 无法让 C# 制作可下载的 csv

标签 asp.net c#-4.0 csv response.write

我必须编写一个按钮,单击后将 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/

相关文章:

c# - 无法加载文件或程序集。无效指针(HRESULT : 0x80004003 (E_POINTER)) 异常

ruby-on-rails - 导入具有 55 行 Roo 的 csv 会导致 ActionDispatch::Cookies::CookieOverflow

linux - 屏蔽分隔列的shellscript

python - 如何读取并提取并合并多个大尺寸csv(1G~)?

c#-4.0 - 在 C# 中使用 7zip.exe 压缩多个文件

c# - Hangfire 在真实服务器中不工作

asp.net - 如何为移动客户端返回 url 中的 oauth token

JavaScript 错误 : Unable to get property of 'click' of undefined or null reference

visual-studio-2010 - 调用目标抛出异常 - 测试项目

c# - 如何通过编码创建多个端点?