我正在学习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请求之间传递实例变量的推荐方法吗?
感谢
答案 0 :(得分:0)
在ASP.NET MVC中,最好的一种动作方法是纯粹的功能 它的参数。我的意思是,action方法只读取数据 从其参数和仅将数据写入其参数和确实 不是指HttpContext或Session或者外部的任何其他状态 控制器。
我认为推荐的方法是使用自定义模型绑定器,从后备存储提供用户ID。模型绑定器允许您创建一个不关心数据来源的控制器。
这个帖子的好地方