0

场景:用户成功登录后,我想创建一个 Account 对象(Account 类是我模型的一部分)并在其中获取并存储用户的信息。我希望我的所有控制器(HomeController、AccountController 等)都可以访问此 Account 对象,并且我希望能够从任何控制器内部编辑其内容。(1)我怎样才能实现这个场景?(2) 如何将模型对象从一个控制器传递到另一个控制器?

4

2 回答 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 回答