2009-01-15 54 views
1

我有一個問題,在的WebForms應用程序,其中用戶選擇的頁面上,從下拉菜單的一些標準和命中頁面上的按鈕調用該方法:爲什麼我的Button在下載zip文件時發送兩個回發?

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應用程序,它的價值。

回答

0

您是否正在使用Content-Disposition標題?

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

嘗試更改內容類型以匹配文件類型?

+0

是的,我正在執行以下操作: Response.ClearContent(); Response.ClearHeaders(); Response.ContentType =「application/octet-stream」; Response.AddHeader(「Content-Disposition」,「attachment; filename =」+ strFileName); Response.AddHeader(「Content-Length」,new FileInfo(strFileLocation).Length.ToString()); – 2009-01-15 01:24:46

+0

它適用於我沒有警告欄。嘗試更改內容類型以匹配文件類型? – 2009-01-15 01:46:09

0

將一個布爾值保存到Session中,表明該條件已被附加。 當用戶從下拉列表中選擇另一個值時,將該值設置爲false。

在您的btn_Download事件中,您可以檢查Session變量的值並避免設置標準兩次。

相關問題