我在项目中创建了一个基本视图,用于保存可在任何视图中的任何位置访问的基本属性。 BaseView
类包含以下属性。 WebSession
,WebRequest
,WebMain
等
当我尝试从视图中访问属性时,可以访问它们。但是,当我必须在视图顶部设置一些全局变量时,我有一个要求。所以我在视图之上的单独代码块中创建了这些变量。这是代码......
@(
Dim panelInfoVisibility As Boolean = False
Select Case WebSession.Menu
Case arwedes.WebShop.Web.Navigation.MenuEnum.Home
panelInfoVisibility = True
Case arwedes.WebShop.Web.Navigation.MenuEnum.Reservieren
panelInfoVisibility = True
Case arwedes.WebShop.Web.Navigation.MenuEnum.Kaufen
panelInfoVisibility = True
Case arwedes.WebShop.Web.Navigation.MenuEnum.Verkaufen
panelInfoVisibility = True
Case arwedes.WebShop.Web.Navigation.MenuEnum.Member
If Request.RawUrl.Contains("login") Then
panelInfoVisibility = True
End If
End Select
)
此代码在编译'WebSession' is not declared. It may be inaccessible due to its protection level.
虽然在下面的视图中我正在使用这个变量......
@If panelInfoVisibility Then
@: <div id="panelInfo">Here it goes....</div>
End If
有谁能告诉我这里做错了什么......
答案 0 :(得分:1)
问题很可能与处理时BaseView布局文件中不存在FormContext
的事实有关。从您的问题中不清楚如何派生您的BaseView类,但实例化FormContext是一个很好的起点。在BaseView顶部添加以下内容:
Me.ViewContext.FormContext = New FormContext()