场景:用户成功登录后,我想创建一个 Account 对象(Account 类是我模型的一部分)并在其中获取并存储用户的信息。我希望我的所有控制器(HomeController、AccountController 等)都可以访问此 Account 对象,并且我希望能够从任何控制器内部编辑其内容。(1)我怎样才能实现这个场景?(2) 如何将模型对象从一个控制器传递到另一个控制器?
问问题
101 次
2 回答
0
(1)我怎样才能实现这个场景?
您可以在需要访问时从数据存储中检索 Account 模型。
(2) 如何将模型对象从一个控制器传递到另一个控制器?
见(1)。由于您是从数据存储中检索它,因此您不需要传递它。
于 2013-04-08T07:04:22.663 回答
0
我打算保留它直到用户注销
然后你可以使用会话。但我建议不要保存很多信息。例如,您有这个模型或实体:
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
于 2013-04-08T07:14:07.577 回答