我來自「常規」聊天室,所以我有點(完全)與MVC迷路。如何在ASP.net MVC 4 webapp的每個頁面請求中共享一個公共對象?
我用我自己的asp.net programmation模式做什麼:
- 我有一個自定義類客體代表的「頁」和它的屬性(如mypage.loadJquery,mypage.isLogged,我的空間。標題,自定義緩存邏輯等)
- 這個類在每個ASHX頁面上都有一個instanciate,然後操作一個stringbuilder來生成HTML,並在瀏覽器末尾吐出它。
- 具有ASHX頁面上只有一個要求,我可以在調用最後的Response.Write
現在,當我試圖去MVC使用頂部,直到結束我的實例化對象頁。我「有點」瞭解M/V/C模型和路由概念。我想保留我的自定義「頁面」對象,但我失去了我的頁面生命週期,而且我絕對不知道如何在每次調用的頂部實例化頁面對象。
我需要通過每一個模型,控制器,視圖,局部視圖,這的HtmlHelper ONCE實例化共享對象...
我實現MVC模式可能在這一刻被混淆對我來說,BU我怎麼可能嘗試重現我的需要? (非常具體的例子:在每個請求中,我需要檢查用戶是否通過他的cookie進行了記錄,如果是我往返數據庫以獲取用戶信息,那麼我確實需要這些信息在每個模型/控制器上/視圖的應用程序,但當然不希望每次回到安全檢查和數據庫查詢,我怎麼能在整個mvc cyle這些信息?)
有趣的方法 – 2013-03-11 19:01:26
如果我理解的很好,只能將一個模型傳遞給VIEW,那麼如何將您所說的「客戶」模型傳遞給您已經實現了默認IViewModel的視圖模型?必須將客戶模型放入視圖包中?它不會破壞這個概念嗎? – 2013-03-11 19:50:28
您可以創建類似ViewModelBase的東西,其中包含屬性'Model'或創建'CustomerViewModel',實現'IViewModel',包含客戶數據和其他附加數據。爲下拉菜單。 –
2013-03-11 20:00:50