所以我从_ViewStart.vbhtml获取了ViewContext.ViewData
的一些数据。
类似于:ViewContext.ViewData("__Stuff") = stuffObject
现在,从没有View或MVC概念的类或任何与Web框架相关的类,我想抓住当前的ViewContext。
与您HttpContext.Current
的方式类似,我想要一些询问当前ViewContext
的方式。
到目前为止,我对HttpContext
的搜索没有产生结果。
是的,我知道我可以从View中注入需要这些数据的ViewContext。但是这比没有这种注射的能够找到它的功能更不可取。
答案 0 :(得分:2)
我想你可能运气不好。通常,您可能知道,视图是该行的结尾。大多数组件在知道视图之前都不知道该视图会运行。我知道你不愿意传递信息,但也许你可以使用像actionfilter
这样的东西来将信息添加到HttpContext。
Public Class ViewDataInjectionAttribute
Inherits ActionFilterAttribute
Public Overrides Sub OnActionExecuted(ctx As ActionExecutedContext)
Dim result = TryCast(ctx.Result, ViewResult)
If result IsNot Nothing Then
HttpContext.Current.Items("viewData") = result.ViewData
End If
MyBase.OnActionExecuted(ctx)
End Sub
End Class
然后,您可以在动作,控制器甚至全局应用过滤器。