1

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

Response.ContentType = "text/plain";

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

通过萤火虫查看,响应标头如下,但实际响应只是页面重新加载时的 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
4

1 回答 1

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。

于 2011-06-03T04:36:50.627 回答