[英]How can I stop a postback from refreshing the page at the client
當我使用__doPostBack啟動回發時,會創建一個文件並返回給用戶以在HttpContext.Current.Response
下載。
因為我更改了Response
,所以不修改包含其javascript值的頁面
但是當我沒有要輸出的文件時,頁面會刷新(因為回發)並且頁面上的javascript修改會丟失。
如何“停止”回發繼續並保留當前頁面? 我不能使用異步回發,因為我需要回發讓用戶下載文件。
編輯:在評論中的一些問題之后的更多信息:
從W3標准和RFC 2616:
10.2.5 204無內容服務器已完成請求但不需要返回實體主體,並且可能希望返回更新的元信息。 響應可以包括實體標題形式的新的或更新的元信息,如果存在,應該與所請求的變體相關聯。
如果客戶端是用戶代理,它不應該從導致請求發送的文檔視圖中更改它的文檔視圖。 此響應主要用於允許在不導致更改用戶代理的活動文檔視圖的情況下進行操作的輸入,盡管任何新的或更新的元信息應該應用於當前在用戶代理的活動視圖中的文檔。 204響應絕不能包含消息體,因此總是在頭字段之后的第一個空行終止。
請注意這里的粗體線。 我自己沒試過; 但是,將HTTP狀態設置為204並發回一個空文檔,而不是試圖完全停止回發,這當然值得一試。
祝你好運,我希望這會有所幫助。
編輯:這是訣竅的代碼:
System.Web.HttpContext.Current.Response.StatusCode = 204;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.