Глобальная переменная на сайте asp.net - PullRequest
3 голосов
/ 22 декабря 2010

Я хочу объявить переменную, как показано ниже, для использования на нескольких страницах моего сайта. Я предполагаю, вместо того, чтобы объявлять это один раз за страницу, я могу сделать это глобально? Я пробовал это в классе (папка app_code) и на странице global.asax, но мой код не может его найти. Может быть, все идет не так? Код как ниже ...

Dim myUser As MembershipUser = Membership.GetUser()

Так что в принципе мои страницы не могут найти переменную 'myUser'. Любая помощь высоко ценится! Спасибо

Ответы [ 4 ]

4 голосов
/ 22 декабря 2010

Используйте объекты Session или Application, если вам нужен такой "глобальный".

Используйте Session, если необходимо для пользователя, Application, если для всего приложения.

2 голосов
/ 22 декабря 2010

Создайте класс / структуру и добавьте статический

namespace MyApp
{
    public class Variables
    {
        public static User MembershipUser
        {
            get { return Membership.GetUser(); }
        }
    }
}

Затем вы можете получить доступ к значению / свойству, используя:

MyApp.Variables.MembershipUser

Если этоGetUser () возвращает объект пользователя со свойством «Имя пользователя», которое вы можете:

Hello <%=MyApp.Variables.MembershipUser.Username%>

Вот версия VB.NET:

 Namespace MyApp
    Public Class Variables
        Public Shared ReadOnly Property MembershipUser() As User
            Get
                Return Membership.GetUser()
            End Get
        End Property
    End Class
End Namespace
0 голосов
/ 22 декабря 2010

@stian.net У меня есть следующее - работает именно так, как я хочу. Вы сказали бы, что это был правильный способ сделать это?

Public Class Variables
Public Shared ReadOnly Property myUser As MembershipUser
    Get
        Return Membership.GetUser()
    End Get
End Property
End Class
0 голосов
/ 22 декабря 2010

Это может быть в базовом классе страницы или в методе расширения до System.Web.UI.Page

public  static MembershipUser GetMembershipUser(this System.Web.UI.Page page)
{
    return Membership.GetUser();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...