NHibernate和MVC实例变量

时间:2011-11-02 09:59:54

标签: model-view-controller nhibernate

我正在学习NHibernate / MVC并创建一个示例应用程序,让用户可以存储他们拥有的书籍列表。我遇到的问题是我的存储库需要当前的登录用户,但我不知道在MVC会话中保留用户详细信息的最佳方法。我正在使用表单身份验证。

登录页面

var user = userRepository.login(username,password);

Session["user"] = user;

列表页

var user = Session["user"] as user;

var books = bookRepository.getByGenre("Fiction",user);

这是在每个http请求之间传递实例变量的推荐方法吗?

感谢

1 个答案:

答案 0 :(得分:0)

史蒂夫桑德森MVC书中指出

  

在ASP.NET MVC中,最好的一种动作方法是纯粹的功能   它的参数。我的意思是,action方法只读取数据   从其参数和仅将数据写入其参数和确实   不是指HttpContext或Session或者外部的任何其他状态   控制器。

我认为推荐的方法是使用自定义模型绑定器,从后备存储提供用户ID。模型绑定器允许您创建一个不关心数据来源的控制器。

这个帖子的好地方

modelbinder-for-an-object-stored-in-session