情景:用户成功登录后,我想要创建一个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. 如何在对象控制器中访问对象模型(“init”)
- 4. 从多个控制器访问模型对象?
- 5. 如何在控制器/视图mvc中使用多个模型?
- 6. 如何在CakePHP控制器中使用多个模型
- 7. 如何使用模型和控制器
- 8. 单个模型的多个控制器
- 9. 我应该如何跨几个视图控制器使用Facebook对象
- 10. Laravel控制器中的多个模型
- 11. Rails一个模型 - 许多控制器
- 12. 从一个控制器的多个模型中使用Searchlogic
- 13. Yii2使用单个控制器为多个相似的模型
- 14. 如何跨导轨应用程序重复使用模型和控制器
- 15. $ rootscope对象模型中的每个控制器
- 16. 如何使用$此reffering在一个笨模型控制器
- 17. 多态控制器和调用对象
- 18. 如何让宝石控制器处理多个任意模型?
- 19. ASP.NET MVC模型绑定器。使用一组对象调用控制器参数
- 20. Ember.JS - 如何在同一页面使用多个模型,控制器和视图?
- 21. 如何将多个对象传递给IGListKit节控制器
- 22. 如何查找属于多个模型对象的模型对象
- 23. 检索大型数据集以跨多个控制器共享
- 24. 如何使用多个过滤器从模型中获取对象?
- 25. 如何在AuthLogic控制器规格中使用模拟模型?
- 26. 如何使用模型/视图/控制器方法制作GUI?
- 27. 跨多个php文件(控制器)使用Codeigniter会话类
- 28. 如何使JS对象跨多个文件可用
- 29. 模型视图控制器模式对软件有多重要?
- 30. 如何使模型数据有效地跨所有控制器方法访问?
你打算把它和后来在另一个请求中使用它?或者只是在(单个)请求期间使用它并传递它呢? – 2013-04-08 07:05:10
我打算保留它直到用户注销。 – 2013-04-08 07:06:08