背景:
我是 MVC 的新手,正在学习如何做事。
我正在尝试做的事情:
我正在尝试使用户数据可用于所有操作。
我是如何实现它的:
我通过在OnActionExecuting函数中加载用户数据来实现这一点。
我遇到的问题:
我不知道在哪里存储我的用户数据以及如何在以后检索它(即,在操作期间)。
当前代码:
在这里,我正在加载当前用户。
protected override void OnActionExecuting(ActionExecutingContext ctx) {
base.OnActionExecuting(ctx);
UserAccount user = null;
using (UsersContext db = new UsersContext()) {
user = db.UserProfiles.FirstOrDefault(u => u.userName.ToLower() == User.Identity.Name.ToLower());
}
}
我如何在这些地方获得它?
public ActionResult Default() {
ViewBag.Message = user.userName; // ????????????
return View();
}
可能的解决方案:
- 只需将其保存在参数中即可。
- 用户 HttpContext(不确定这将如何工作,请帮助)。
- 用户 ControllerContext (不确定这将如何工作,请帮助)。
- 视图状态?
- 查看包?
- 缓存?
- 任何其他类型的 MVC 魔法