4

我在 Razor .cshtml 页面的会话变量中出现了一些时髦的行为。基本上在某些页面上,我检查是否设置了 Session 变量,如果没有设置它。我不断得到一个空对象引用。

我相信这是因为最终 Razor 是为 MVC 设计的,我对 MVC 生命周期做了一些阅读,显然会话对象在生命周期中注入了一个不同的点,然后说 asp.net webforms。因此,当我尝试在我的页面上使用它时,它还不可用。

所以我的问题是对于基于 Razor 的简单站点(还不是 MVC,但会以这种方式移动),什么是检查是否设置了会话变量(比如说“访问级别”)的有效方法,并且经常检查。这将是问题的一部分。

问题的第二部分是,如果这是不好的做法,那么我应该怎么做才能取代这种方法?

谢谢您的意见。

4

1 回答 1

5

ASP.NET MVC 3 中的 Razor 视图页面以与使用 Razor 语法的 ASP.NET 网页几乎相同的方式执行。作为记录,Razor 最初是为 Web Pages 而不是 MVC 开发的——我们后来对其进行了重新设计,以确保它在这两种情况下都是“一等公民”。

因此,无论您在哪里使用 Session 状态,它都应该可以正常工作 - 从网页文件、MVC 控制器甚至是 MVC 视图中(尽管大多数人认为从 MVC 视图中使用 Session 状态是一种不好的做法)。

于 2010-11-13T03:32:53.837 回答