2

我一直有一個瞭解幾個MVC框架(如導軌,Merb的,CakePHP的,codeignitier,和同類者...)我應該在哪裏保存複雜的MVC應用程序UI狀態?

所有的樣品我見過基本上都是簡單明瞭的CRUD頁面,攜帶所有查詢字符串中需要的infr和發佈的字段值。

我有幾個應用由經典的asp構建的某種框架構成的應用程序。

這個框架處理一些比我發現的例子更復雜的CRUD。

類似於主 - 細節,通過示例過濾,分頁,排序和類似物。

我有一個控制器類,它只是一個有限狀態機,通過不同的狀態(如新的,瀏覽,過濾器,顯示等),然後根據提出的事件執行相應的操作,最後檢索向呼叫頁面發送信息。

要做到這一點,我有幾個隱藏的投入,以保持網頁的狀態(如電流id,過濾指標分析,訂單審覈規定,以前的狀態,以前的事件,那麼,你的想法)

怎麼辦你認爲這將是實現這種功能的最完美的方法嗎?

隱藏輸入內置視圖和從控制器使用? (我想這將是我在做什麼,現在在CLASSI ASP等效)

-

基本上(響應tvanfosson添加),我的問題是指第三類,依賴於上下文的設置(關於其他兩個類別,我同意你)我存儲在隱藏字段中的信息,以將它們存儲在查詢字符串中,我猜當你點擊「下一頁」時,需要保存在查詢字符串中,對嗎?所以這段查詢字符串會被追加到執行某種動作的每個鏈接中......

我不確定,使用查詢字符串而不是隱藏輸入的優缺點是什麼?

+0

你保持什麼狀態,不能作爲路徑部分轉移到URL? – Will 2009-01-14 17:32:54

回答

2

根據實際數據的特點,我使用不同的策略。喜歡的東西,比如默認頁面大小,我保存在與當前登錄用戶關聯的Preferences對象(表)中,並在需要時從那裏檢索。

與當前登錄相關的持久設置(如頁面的過濾器設置)存儲在用戶的會話中。通常情況下,如果用戶在當前會話中設置它們,它們應該保持粘性。我認爲過濾器設置和可見性就像這樣。如果我篩選一個列表,遠離它瀏覽一個特定的項目,然後回到列表中,我希望重新應用我的篩選器設置 - 所以我將它作爲會話的一部分。

上下文相關設置 - 如當前的排序列或頁碼,使用查詢參數進行控制。分頁和排序控制(鏈接)使用適當的查詢參數構建,以便在單擊時「做正確的事情」並傳遞任何必要的查詢參數以維護或更新控件的當前上下文。使用查詢參數可以使用可收藏的HTTP GET,而不是POST。使用隱藏的表單參數會讓用戶難以保存或輸入一個將他們直接帶到他們想要去的URL。這對於排序可能比分頁更有用,但該原則同樣適用。

相關問題