情景:用戶成功登錄後,我想要創建一個Account對象(Account類是我的模型的一部分)並獲取用戶信息並將其存儲在其中。我希望這個Account對象可以被我的所有控制器(HomeController,AccountController等)訪問,並且我希望能夠從任何控制器中編輯它的內容。 (1)我如何實現這種情況? (2)如何將模型對象從一個控制器傳遞到另一個控制器?如何跨多個控制器使用模型對象?
回答
我打算保留它,直到用戶註銷
然後你可以使用會話。但我建議不要保存很多信息。因此,例如,你有這樣的模型或實體:
public class AccountModel {
public int Id {get;set;}
public string Username {get;set;}
// and a whole lot more of properties
}
我建議你只存儲一個identifier
領域,無論是Id
或Username
。然後,當另一個請求進來,你需要或者驗證請求或更新相同的模型,您可以:
- 再次讀取該數據爲用戶和所有相關信息
- 更新必要的字段
- 將它保存在數據庫中
所以,你會做這樣的事情:
// to save it in a session after logging in
Session["current_user_id"] = id_variable;
// to retrieve it from session after another request comes in
var id = (int)Session["current_user_id"];
// fetch from your database
// do the necessary update
// persist the changes
非常感謝。我會按照你的建議去做 - 使用會話來保存用戶的AccountID,然後用它從我的數據庫中提取他的詳細信息。 – 2013-04-08 07:19:23
不客氣。請記住會話過期,因此請務必檢查會話項目是否爲空。 – 2013-04-08 07:20:57
(1)我該如何實現這種情況?
當您需要訪問它時,您可以從數據存儲中檢索帳戶模型。
(2)如何將模型對象從一個控制器傳遞到另一個控制器?
參見(1)。既然你正在從數據存儲中檢索它,你不需要傳遞它。
用戶登錄後,我想創建一個Account對象並從數據庫中獲取他的詳細信息,並使用它填充帳戶對象。然後,在另一個控制器(其視圖使用戶能夠編輯其帳戶信息)中,我想將編輯保存到我之前和之後創建的SAME帳戶對象,並將更改保存到數據庫。 – 2013-04-08 07:09:56
- 1. 跨多個視圖控制器使用對象
- 2. 控制器使用多個模型?
- 3. 如何使用模型對象的Yii控制器和視圖
- 4. 如何在對象控制器中訪問對象模型(「init」)
- 5. 從多個控制器訪問模型對象?
- 6. 如何在codeigniter 3.1.4中使用多個控制器和模型?
- 7. 如何在CakePHP控制器中使用多個模型
- 8. 如何在控制器/視圖mvc中使用多個模型?
- 9. 如何將多個對象從模板映射到控制器
- 10. Rails:update_attribute調用多個控制器/模型?
- 11. 如何使用模型和控制器
- 12. 單個模型的多個控制器
- 13. 我應該如何跨幾個視圖控制器使用Facebook對象
- 14. 跨控制器的共享模型
- 15. 如何過濾和同步跨多個控制器的對象數組
- 16. 跨控制器保持對象
- 17. Laravel控制器中的多個模型
- 18. Rails一個模型 - 許多控制器
- 19. 在單個控制器中使用多個模型MEAN.IO
- 20. 從一個控制器的多個模型中使用Searchlogic
- 21. Yii2使用單個控制器爲多個相似的模型
- 22. 使用css3/javascript跨多個對象轉換多個對象
- 23. 如何使用Spring MVC 3從控制器模型中獲取對象?
- 24. 如何跨導軌應用程序重複使用模型和控制器
- 25. 傳遞多個對象,控制器MVC
- 26. 如何從一個控制器創建多個模型
- 27. 跨越不同的控制器使用相同的DbContext對象
- 28. 模式進行多對多創建模型控制器
- 29. $ rootscope對象模型中的每個控制器
- 30. 如何使用$此reffering在一個笨模型控制器
你打算把它和後來在另一個請求中使用它?或者只是在(單個)請求期間使用它並傳遞它呢? – 2013-04-08 07:05:10
我打算保留它直到用戶註銷。 – 2013-04-08 07:06:08