我不确定这是否是正确的方法,如果需要,请纠正问题。
我需要通过完整的页面生命周期访问一个我想创建一次的对象。我考虑使用ViewData,但我所有访问上下文信息的扩展方法都使用HttpContextBase,并认为在这种情况下也应该如此。
我应该这样做吗?
我不确定这是否是正确的方法,如果需要,请纠正问题。
我需要通过完整的页面生命周期访问一个我想创建一次的对象。我考虑使用ViewData,但我所有访问上下文信息的扩展方法都使用HttpContextBase,并认为在这种情况下也应该如此。
我应该这样做吗?
@ViewContext.Controller.ViewData
来访问当前控制器的ViewData
。假设您想从您当前所在的视图中提取它。看到一个用例会很有帮助。
ViewData
是WebViewPage
的一部分,不是可以从HttpContextBase
本身访问的东西。HttpContext.Current.Items
创建仅对当前请求可用的项。HttpContext
是 ASP.NET 的,但 ViewData
是 ASP.NET MVC 的。这就是为什么 MVC 实现了 ViewContext
来包装 HttpContext
。 - RPM1984你可以使用Session来存储信息并使其可用。
HttpContext.Current.Session
httpContext.Items["foo"]
将工作正常。 - Ben Foster