Asp.net mvc 视图中的代码块无法访问基本视图属性

Asp.net mvc 视图中的代码块无法访问基本视图属性,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,我已经在我的项目中创建了一个基本视图,以保存可以在任何视图中的任何位置访问的基本属性。BaseView类包含以下属性网络会话,WebRequest,WebMain等 当我尝试从视图中访问属性时,它们是可访问的。但是,当我必须在视图顶部设置一些全局变量时,我有一个要求。所以我在视图顶部的一个单独的代码块中创建了这些变量。这是代码 @( Dim panelInfoVisibility As Boolean = False Select Case WebSession.Menu

我已经在我的项目中创建了一个基本视图,以保存可以在任何视图中的任何位置访问的基本属性。
BaseView
类包含以下属性<代码>网络会话,
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'时,此代码会给出编译错误。由于其保护级别,可能无法访问。

在下面的视图中,我像这样使用这个变量

@If panelInfoVisibility Then
    @: <div id="panelInfo">Here it goes....</div>
End If
@如果是,那么
@:给你。。。。
如果结束

谁能告诉我我做错了什么…

问题很可能与处理BaseView布局文件时,
FormContext
不存在于BaseView布局文件中有关。您的问题并不清楚BaseView类是如何派生的,但实例化FormContext是一个很好的起点。在BaseView的顶部添加以下内容:

Me.ViewContext.FormContext = New FormContext()

感谢您的评论,这无疑有助于删除早期的编译器错误,但现在在第5行显示了一个新的错误,说明:
Expression Expected
,即这一行:
@(
)。不知道我在这方面做错了什么。我的BaseView类派生自
WebViewPage
(和
WebViewPage(属于TModel)