從閱讀這裏和周圍的網絡,我接近假設答案是「否」,但...有沒有辦法修改查詢字符串而不會破壞ASP.Net回發?
比方說,我有一個ASP.Net頁有時有一個查詢字符串參數。如果頁面具有查詢字符串參數,我想在回發之前,之中或之後剝離它。該頁面已經有很多客戶端腳本(純JavaScript和jQuery)。
舉個例子,說我加載:
http://myPage.aspx?QS=ABC
的QS參數是需要控制時,第一次加載和由「呼叫」在頁面設置頁面上顯示的內容。 myPage.aspx
有需要填寫的表單元素,並有一個提交按鈕,可以回發。當頁面完成回傳,我需要回到網址爲:
http://myPage.aspx
,以避免在查詢字符串存在被調用的客戶端代碼。換句話說,在提交之後,我不希望與查詢字符串參數關聯的客戶端操作觸發。我知道我可以將表單內容作爲查詢字符串參數本身追加到URL中,只是重定向到新的URL並避免提交/回發,但是這將需要更多類型的代碼隱藏檢查以避免不良數據和偶然欺騙。我認爲我也可以在代碼隱藏中設置一個隱藏字段,並與查詢字符串一起查看它以取消客戶端行爲,如果我從回發中返回,但仍然會使查詢字符串基本上永遠保持原樣並且我想要在初始頁面加載後襬脫它。
任何想法或最佳實踐?
PS - 有沒有什麼我可以做與Form.Action屬性不會打破回發行爲?
IIRC,Response.Redirect將失去我的viewstate和Server。Transfer將保留我的viewstate(即使轉到完全不同的頁面時),但會保持URL(與查詢字符串)完整。我在這裏看不到優勢。 – CMPalmer 2008-12-09 15:56:38