2011-09-05 42 views
0

我在我的項目中創建了一個基本視圖,以保存可以在任何視圖的任何位置訪問的基本屬性。 BaseView類包含以下屬性。 WebSession,WebRequest,WebMainView中的代碼塊無法訪問基本視圖屬性

當我嘗試從視圖內訪問屬性時,它們是可訪問的。但是,當我必須在視圖頂部設置一些全局變量時,我有一個要求。所以我在視圖頂部的一個單獨的代碼塊中創建了這些變量。下面是代碼...編譯時

@(
    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 

燦有人告訴我我在做什麼錯在這裏...

回答

1

這個問題最有可能與FormContext不存在於你的BaseView la中你正在處理的文件。從您的問題中不清楚您的BaseView類是如何派生的,但實例化FormContext是一個很好的開始。添加下面你基本視點的頂部:

Me.ViewContext.FormContext = New FormContext() 
+0

感謝您的評論,已經一定幫助消除早期的編譯器錯誤,但現在出了新的錯誤了說明:'表達Expected'其上線5這行:'@('。不知道我在這做錯了什麼。我的BaseView類是從'WebViewPage'(和'WebViewPage(Of TModel)') –

+0

+1派生的,用於指向正確的方向。 .. :) –