這是一個MVC3 Web應用程序。在_Layout.cshtml
共享視圖中,左側導航樹用於加載左側導航欄右側的頁面。在每個樹列表項上單擊,它將刷新頁面以加載具有相同佈局視圖的相應頁面。這是一個全局變量,如cookie在回發後保留價值,但它應爲不同實例(標籤/窗口)保存不同值
在此_Layout.cshtml中,樹下有一個Select Category
鏈接和一個空div(targetDiv
)。選擇Category鏈接將打開一個帶有webgrid的jQuery UI模式對話框,並顯示所有'類別'。點擊表格中的任何「類別」鏈接後,對話框將關閉,targetDiv將由AJAX重新加載,以便targetDiv中的webgrid填充此「類別」中的所有「書籍」。
如果用戶點擊任何左導航項目,整個頁面將重新加載。所以我需要保留所選'類別'的'書籍'列表。爲此,當在模式對話框中選擇「類別」時,我保存一個cookie(CategoryId)。在頁面重新加載(文檔準備就緒)時,我在_Layout頁面中使用此cookie,該頁面再次填充此「類別」中的所有「書籍」。
這工作正常,但新的要求是允許在多個「類別」上工作。如果我在瀏覽器的一個選項卡中選擇「類別1」,並通過此類別獲取所有書籍,則在下一個選項卡(同一應用的另一個實例)中,我應該能夠處理不同的「類別」,以及不同的圖書。在這種情況下,我無法使用Cookie,因爲Cookie是在所有選項卡之間共享的。
如何在不同的實例(瀏覽器選項卡/窗口)上設置不同的「類別」?
感謝@glenatron,您已經正確理解它。但是我已經在'InsertionMode.Replace'中使用了AJAX,並且'targetDiv'中的那部分是另一個View(在這個視圖中還有一個Search過濾器,在提交時刷新這個部分不僅僅是整個頁面)。但即使用戶點擊樹項目以加載右側的其他頁面,頁面重新加載也可能發生。因此,應該保留已經在網格中的「書籍」集合,這就是爲什麼我要將「categoryId」保存在cookie中的原因。 – 2012-07-17 13:46:10