2009-04-18 88 views
0

我正在ASP.NET MVC中編寫一個學習項目。我有一個顯示用戶書籍的「書籍」頁面,並且在該頁面中有幾個排序和過濾選項。ASP.NET MVC存儲頁面特定設置


書頁

排序參數:名稱,年份,作者... 過濾參數:讀,未讀...


當用戶選擇如「標題排序參數「,控制器按標題對書籍進行排序並返回查看。然後,如果用戶選擇」讀取「過濾器,我希望列出的書籍按」標題「排序並通過」讀取「參數進行過濾。

據我所知,我必須存儲排序和過濾參數來做到這一點。我不確定什麼是最好的和簡單的方法,因爲我對ASP.NET中的Session,HttpContext,Tempdata概念有點困惑MVC。我可以使用傳統的ASP.NET Webforms Session方式來做到這一點,但有些人說使用會話可能會帶來問題。有什麼選擇,什麼是最好和簡單的方法來做到這一點?

回答

0

這取決於您希望選擇是持久的,因爲用戶在站點周圍導航然後返回到頁面。如果需要保持持久性,那麼在會話中存儲選項是一種合理的方法。如果選擇僅適用於特定頁面,則可以將選擇放入ViewData中,並在視圖中選擇ViewData(或Model)中的值。這樣,當頁面返回給瀏覽器時,每次往返的選擇都會產生正確的默認值。

我個人的感覺是,選擇應該保留整個會議,我保持我的價值存儲在會議。

0

MVC框架有一些很棒的選擇。一種是在表單上隱藏輸入,用於存儲信息。所以,當你點擊一個度假村按鈕,然後在該字段上鍵入確定排序順序。

第二種更優雅的做法是讓它具有與您的按鈕相關的值,所以如果我點擊標題按標題排序,如果我按作者按作者排序。控制器將能夠檢測到這一點。

最後,有一些優秀的JavaScript控件可以使用,自動爲你做所有這些。想到的是EXT電網控制,這絕對是一個很好的選擇。它涉及JavaScript的一些工作,但它完全值得!希望這可以幫助