1Future Ответов: 1

Как передать переменные / свойства из одного метода в другой в веб-формах c# aspnet


Всем Привет,


У меня есть следующие методы на моей странице Aspx .

// метод 1
protected void UserId(object sender, EventArgs  e)
        {

//getting user id from a button click as a parameter
             int UserId = 231;


   }


// Метод 2

protected void GetUserId(object sender, EventArgs  e)
        {
             int getUserId = // how do i get userId from method 1;


   }


Что я уже пробовал:

Я попытался поставить это непосредственно перед методом loadpage:

int Id {get;set;}

и задайте ID для имени пользователя в способ вроде так:
Id = userId;

и код вызываемого метода 2, Как так:
getUserId =Id; / / но ID возвращается обратно к нулю всякий раз, когда я нажимаю первый метод;

1 Ответов

Рейтинг:
1

Dave Kreskowiak

Вы не помните, что веб-приложения не имеют состояния. Когда вы получаете запрос на один метод, результирующая веб-страница возвращается, и ваше состояние (переменные имели содержимое) теряется. Следующий метод, который вызывается из браузера, идет к контроллеру, как будто это был первый запрос, сделанный к контроллеру с момента запуска сайта.

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

В вашем случае вызов UserId должен сохранить нужные вам значения переменных, а затем следующий вызов GetUserId должен получить это состояние. Но вы также должны учитывать тот факт, что что, если государства там нет? Что делать, если вызова UserId никогда не было?