0

我在WebForms应用程序上遇到问题,用户从页面上的下拉列表中选择一些标准并点击页面上调用此方法的按钮:

protected void btnSearch_Click(object sender, EventArgs e)

然后他们单击按钮以根据调用此方法的标准下载 zip 文件:

protected void btnDownload_Click(object sender, EventArgs e)

在 IE 中,浏览器顶部的栏会提示他们:

“为了帮助保护您的安全,Internet Explorer 阻止了该站点将文件下载到您的计算机”。

当他们单击该栏以下载文件时,它会btnSearch_Click再次触发该事件。

Response.ContentTypeResponse.AddHeader已正确设置。

问题是,它btnSearch附加了标准,所以基本上它被附加了两次并导致问题。

我能做些什么来防止这种情况发生吗?

这是一个使用 C# 3.5 的 VS2008 Web 应用程序,物有所值。

4

3 回答 3

1

当他们单击下载按钮时,执行重定向到 ZIP 文件处理程序(页面?)以下载文件。即使用 Post-Redirect-Get 模式:http ://en.wikipedia.org/wiki/Post/Redirect/Get

于 2010-03-18T01:33:59.067 回答
0

您是否使用 Content-Disposition 标头?

Response.AddHeader("Content-Disposition", "attachment; filename=fileName.zip");

尝试更改内容类型以匹配文件类型?

于 2009-01-15T01:17:40.317 回答
0

将布尔值保存到 Session 中,指示已附加条件。当用户从下拉列表中选择另一个值时,将此值设置为 false。

在您的 btn_Download 事件中,您可以检查 Session 变量的值并避免两次设置标准。

于 2009-01-15T07:03:34.830 回答