Передача значений между классами C # - PullRequest
0 голосов
/ 25 мая 2011

Я совершенно новичок в прекрасном мире C # и не знаю, как справиться с такой проблемой.

У меня есть веб-сайт .NET в Visual Studio 2008, и у меня есть главная страница main.aspx (с последующими main.aspx.cs) и страница игры game.aspx (также с game.aspx.cs).

В главном классе в main.aspx.cs у меня есть статическая переменная private static string _username; и вместе с ней метод getUsername, который просто возвращает это значение.

Теперь в моем игровом классе (game.aspx.cs) у меня есть обработчик событий saveButton_Click(), и в этой функции мне нужно значение _username!

Если это помогает, пользователь запускается на главной странице, а затем входит в систему ... переменная _username сохраняется, если логин действителен, а затем пользователь нажимает ссылку, чтобы перейти на страницу game.aspx!

Я посмотрел на ключевое слово internal, но я не уверен, как его использовать в этом конкретном примере или даже если в этом примере это правильно!

Ответы [ 4 ]

4 голосов
/ 25 мая 2011

Чтобы ответить на ваш вопрос, вы можете сделать публичное статическое свойство отдельным классом.

Однако, не .

Эта модель ужасно (или хуже) выйдет из строя, когда два человека будут использовать ваш сайт одновременно.

Вместо этого вы должны использовать Состояние сеанса .

3 голосов
/ 25 мая 2011

Добавьте это на свою главную страницу и классы игровой страницы:

protected string UserName {
    get { 
        string retVal=string.Empty;
        if (!string.IsNullOrEmpty(Session["UserName"]))
            retVal=Session["Username"].ToString();
        return retVal;
    }
    set{
        Session["UserName"]=value;
    }
}

, а затем получите доступ к свойству из своего кода;

1 голос
/ 25 мая 2011

Вы должны использовать Sessions для хранения и доступа к значению на нескольких страницах:

//To store value in session variable
Session["UserName"] = "UserName"; 

//To access the value in the session variable
String UserName = Session["UserName"];

Проверка сведений Состояние сеанса ASP.NET

0 голосов
/ 25 мая 2011

ИМХО, вы можете использовать Аутентификацию на основе форм, которая позволит очень просто получить имя пользователя через User.Identity.Name.

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