Блок кода в представлении не может получить доступ к базовым свойствам представления - PullRequest
0 голосов
/ 05 сентября 2011

Я создал базовое представление в своем проекте, чтобы содержать основные свойства, к которым можно получить доступ в любом месте любого из представлений.Класс 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

Может кто-нибудь сказать мне, что я здесь делаю не так ...

1 Ответ

1 голос
/ 05 сентября 2011

Скорее всего, проблема связана с тем, что FormContext не существует в файле макета BaseView во время его обработки.Из вашего вопроса не ясно, как получен ваш класс BaseView, но создание экземпляра FormContext - хорошее место для начала.Добавьте следующее в верхней части вашего BaseView:

Me.ViewContext.FormContext = New FormContext()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...