我在Razor .cshtml页面的会话变量中得到了一些奇怪的行为。实际上,在某些页面上,我会检查是否设置了会话变量,如果没有,我就设置它。我一直得到一个空的对象引用。
我相信这是因为Razor最终是为MVC设计的,我读了一些关于MVC生命周期的文章,显然session对象在生命周期中被注入了一个不同的点,然后是asp.net webforms。因此,当我尝试在我的页面上使用它时,它还不可用。
所以我的问题是,对于基于Razor的简单站点(还不是MVC,但移动到那里),检查是否设置了经常检查的会话变量(比如“访问级别”)是一种有效的方法。这将是问题的第一部分。
问题的第二部分是,如果这是一种糟糕的做法,那么我应该做些什么来取代这种方法?
感谢您的意见。
发布于 2010-11-13 11:32:54
ASP.NET MVC3中的Razor视图页面的执行方式与使用Razor语法的ASP.NET网页几乎相同。根据记录,Razor最初是为Web页面开发的,而不是MVC --我们后来对其进行了修改,以确保它在这两种情况下都是“一等公民”。
因此,无论在网页文件、MVC控制器甚至MVC视图中使用会话状态,它都应该工作得很好(尽管大多数人认为在MVC视图中使用会话状态是一种糟糕的做法)。
https://stackoverflow.com/questions/3990121
复制相似问题