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)
)