夥計們我試圖將變量從一個頁面傳遞給另一個頁面。在搜索時,我發現使用QueryString
方法或使用Session
來傳遞變量。我不喜歡QueryString
方法,因爲它顯示URL中的數據可以修改,所以我參加了會議。使用Session將動態值從一個ASP頁面傳遞到另一個頁面?
現在我在asp中添加了一個DataGridView
,它在每行都有一個按鈕。點擊這個按鈕後,將創建一個會話變量,其中點擊了按鈕的行的第一列的值,然後它重定向到我正在使用此會話變量的另一個頁面。
現在的問題是,當我使用Visual Studio調試器,這工作正常,並且變量值根據按鈕單擊不斷變化。但是,一旦我將該網站上傳到主機,首次單擊DataGridView
中的按鈕時會創建該變量,但當我在不同行中再次按下按鈕時,變量值不會更改。它保持不變,除非我在重定向頁面上的瀏覽器中按F5,只有這樣值纔會更新。
我認爲值存儲在瀏覽器的緩存中,直到我強制刷新頁面纔會更改。我該怎麼做才能解決這個問題?除了上面提到的兩種方法外,還有其他方法可以傳遞變量嗎?
代碼來創建會話和重定向:檢索會議
GridDataItem item = (GridDataItem)e.Item;
string ticketid = item["ID"].Text;
Session["viewID"] = ticketid;
Response.Redirect("View.aspx");
代碼:
String s = Session["viewID"] as String;
我也想避免使用cookie,很多用戶都在這麼使用Cookie的瀏覽器禁用了Cookie不會是最佳的。
在會話中存儲值肯定沒有任何問題。在頁面之間傳遞數據時,它是首選的方法。也就是說,你的代碼對我來說看起來很好。嘗試添加一些日誌記錄,以便您可以查看生產服務器上正在發生的事情。 – mituw16
我認爲該頁面正在存儲在緩存中,請嘗試將View.aspx設置爲不緩存,並查看是否有幫助 – Pseudonym
@ PseudoNym01在哪裏更改設置以便View.aspx不被緩存?在我的瀏覽器中,還是有任何代碼爲此目的? – NewbieProgrammer