SCENARIO:用户成功登录后,我想创建一个Account对象(Account类是我模型的一部分),并在其中获取并存储用户信息。我希望我的所有控制器(HomeController,AccountController等)都可以访问这个Account对象,而且我希望能够从任何控制器内部编辑其内容。 (1)如何实现这种情况? (2)如何将模型对象从一个控制器传递到另一个控制器?
答案 0 :(得分:0)
(1)我如何实现这种情况?
您可以在需要访问时从数据存储中检索帐户模型。
(2)如何将模型对象从一个控制器传递到另一个控制器?
见(1)。由于您是从数据存储中检索它,因此无需传递它。
答案 1 :(得分:0)
我打算保留它直到用户退出
然后你可以使用session。但我建议不要保存很多信息。例如,您有这个模型或实体:
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