Visual Studios C # - класс повторно вызывается при обновлении страницы - PullRequest
1 голос
/ 02 апреля 2012

В Visual студиях вызывается ли класс каждый раз, когда обновляется страница?У меня есть следующий класс - я хочу добавлять значение в переменную каждый раз, когда нажимается кнопка;

public partial class _Default : System.Web.UI.Page
{
    Random random = new Random();
    int total;
    int playerTotalValue;

    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void ranPlayer_Click(object sender, EventArgs e)
    {
        int randomNumTwo = random.Next(1, 10);
        playerTotalValue = playerTotalValue + randomNumTwo; //playerTotalValue gets reset to zero on every click
        playerTotal.Text = playerTotalValue.ToString();
    }
}

playerTotalValue сбрасывается в ноль каждый раз, когда я нажимаю кнопку 'ranPlayer', или я так думаюслучается.

Ответы [ 3 ]

5 голосов
/ 02 апреля 2012

HTTP не имеет состояния . Это означает, что он не будет сохранять значения в переменной, как вы делаете это при программировании окон. Поэтому всякий раз, когда вы нажимаете на кнопку, она выполняется так же, как и при начальной загрузке страницы. Но ждать !. У вас есть значение, доступное в текстовом поле. Таким образом, вы можете прочитать значение оттуда и сохранить его в переменной.

    protected void ranPlayer_Click(object sender, EventArgs e)
    {
        playerTotalValue =0;
        if(!String.IsNullOrEmpty(playerTotal.Text))
        {
          playerTotalValue =Convert.ToInt32(playerTotal.Text);
        }
        int randomNumTwo = random.Next(1, 10);
        playerTotalValue = playerTotalValue + randomNumTwo; //playerTotalValue gets reset to zero on every click
        playerTotal.Text = playerTotalValue.ToString();
     }
2 голосов
/ 02 апреля 2012

Длительность этого экземпляра составляет запрос .После этого он сбрасывается.Каждый запрос будет использовать отдельные объекты.

Любое состояние, которое необходимо сохранить между запросами, должно быть либо частью запроса (например, поле формы http или cookie), либо храниться на сервере (состояние сеанса).

Итак, да: playerTotalValue равно 0 в начале каждого запроса.

0 голосов
/ 02 апреля 2012

Я бы создал свойство, которое будет хранить значение в ViewState, чтобы оно сохранялось в обратных передачах.

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