直接访问会话与其他方式

时间:2013-06-13 15:28:36

标签: asp.net-mvc session-variables

我已经在MVC 3上工作了一段时间,并且一直在审查我的代码。我使用会话来存储所有操作/视图所需的数据。

我觉得这是一个坏主意,虽然我并不完全理解为什么。所以我开始阅读并发现这篇文章:Session variables in ASP.NET MVC

我目前正以这种方式访问​​我的控制器中的会话,

private SelectedReport Report
{
   get
   {
        return Session["Report"] as SelectedReport;
   }
   set
   {
        Session["Report"] = value;
   }
}

然后使用this.Report

访问它

我已经读到上述方式不是最佳/好的,但我不确定原因。

为什么我的方式不好/最佳?为什么提供链接的方式更好?

(这可能更好地构成一个概念性问题,但我不知道如何问这个问题,我认为我缺少一些网络/ mvc概念。我有点像在没有先验知识的情况下投入MVC / Web,并且从未确定从哪里开始。)

1 个答案:

答案 0 :(得分:1)

对于错误处理,有几个库可以为您简化操作。 但除此之外,只有在需要对象的地方才能在会话中存储事物

理想情况下,如果需要将一个对象从一个视图暴露给另一个视图,则可以使用包含视图所需内容的公共基础模型,或者将内容添加到ViewData对象而不是会话对象。

对于错误处理,致命错误应该存在于global.asax中,对于警告,我特别使用基本模型类来包含通过母版页显示的警告集合的所有视图。