2011-10-26 50 views
0

我在模態窗口中。Response.BinaryWrite and Response.Write from a popup

我有一個超鏈接,它指向一個ashx文件。

這個ashx文件使用Response.BinaryWrite推送文件下載,然後我想關閉模態。

的事情之一是,

如果我使用

Response.BinaryWrite(myFile); 
Response.("<script type='text/javascript'>window.close();</script>"); 

這是行不通的。

如果我別說

Response.("<script type='text/javascript'>window.close();</script>"); 

它的工作原理。

任何機構都有解決方案嗎?

THX

+0

這很簡單。從網頁導航到ashx。設置正確的內容類型並進行二進制寫入。內容類型可以是application/pdf。瀏覽器將打開或要求您保存該文件,而不是嘗試打開新的瀏覽器窗口。 – Asken

回答

2

沒有,有沒有解決辦法,因爲你上面的線做兩個不同的東西:

第一行基本上是流文件給用戶。在用戶迴應出現的對話框(他選擇保存或在屏幕上顯示)之前,沒有什麼可以做的。看起來你正試圖自動關閉用戶的對話框,但是你無法從服務器端代碼中控制用戶的瀏覽器。

第二行是因爲你所做的只是發送指示瀏覽器窗口自動關閉的javascript代碼。你不能在同一個響應流中把這兩件事交織在一起。

+0

但它基本上是我以爲它只是無法正常工作。但我想確定。我會試着想出另一種方法。 – GillouX

1

我認爲你選擇了一個錯誤的方法。 AFAIK您使用二進制寫入來向客戶端發送二進制文件,即pdf 客戶端不會理解您也在二進制流末尾發送了一個JavaScript。 您不能將二進制數據和腳本組合起來

相關問題