2009-09-23 83 views
1

我有一個搜索欄,上面有4個級聯下拉菜單,用戶做出選擇然後點擊搜索。當用戶返回到搜索頁面時,我希望仍然顯示先前選擇的值。在MVC中維護會話狀態的最佳方法

有關保存這些選定值的最佳方法的任何意見?

回答

4

有什麼理由不把它們放在Querystring中?

如果您正在考慮會話,請首先嚐試使用TempData,它將負責爲您處理會話。

正如其他地方提到的,餅乾是可以的,但不是RESTful。使用Querystring,可以爲搜索添加書籤。一些知名人士使用這種方法(google和SO來命名兩個)

+0

查詢字符串爲勝 - 始終使用查詢字符串用於搜索。它更友好。 – sirrocco 2009-09-23 17:21:42

1

如果您臨時保存可以使用,請使用Cookie。

1

會話在ASP.NET MVC中仍然可用。此外,它現在可以嘲笑。雙贏。

0

這是會話詞典是什麼:頁面加載間店導航值...

0

我們使用企業庫緩存應用程序塊:

http://msdn.microsoft.com/en-us/library/dd203099.aspx

+0

您使用緩存塊來存儲用戶數據?我會理解使用緩存塊緩存說搜索結果,所以重複的搜索拉回緩存的副本,你真的使用它的用戶數據嗎?如果是的話,你如何將數據映射到全局到用戶? – 2009-09-23 12:46:34

+0

@Chris:Entlib基於一個關鍵值對。如果您使用userid作爲密鑰,那麼存儲用戶數據就沒有問題。 – 2009-09-23 13:25:59