下载文件/另存为.Net无法正常工作

时间:2011-06-03 02:41:20

标签: asp.net http download mime-types content-disposition

我有一个基于jquery灯箱的屏幕,我想在点击一个链接按钮时下载一个文件,但是弹出框允许我保存没有出现...我下面的简单测试代码工作如果把它放在表单加载中但是如果我把它放在服务器端单击事件的超链接。有什么想法吗?

Response.ContentType = "text/plain";

Response.AppendHeader("Content-Disposition", "attachment; filename=event.txt");
Response.Write("test");
Response.Flush();
Response.End();

通过firebug查看,响应标头如下所示,但实际响应只是重新加载时页面的html。

Response Headers
Cache-Control   private
Transfer-Encoding   chunked
Content-Type    text/plain; charset=utf-8
Server  Microsoft-IIS/7.5
X-AspNet-Version    2.0.50727
Content-Disposition attachment; filename=event.txt
X-Powered-By    ASP.NET
Date    Fri, 03 Jun 2011 03:21:25 GMT

1 个答案:

答案 0 :(得分:1)

这是我尝试过的一项实验:

标记:

<p>
    <a href="#" runat="server" ID="lnkDownload" Text="Download Text" onServerClick="DownloadFile">Download</a>
</p>

代码背后:

protected void Page_Load(object sender,EventArgs e) {

}

protected void DownloadFile(object sender,EventArgs eventArgs) {     Response.ContentType =“text / plain”;

Response.AppendHeader("Content-Disposition", "attachment; filename=event.txt");
Response.Write("test");
Response.Flush();
Response.End();

}

唯一不同的是我使用OnServerClick而不是OnClick。

这适用于Firefox 3.6和IE9。