2013-08-26 3 views
0

настроить переменную сеанса на бронирование form.aspx, как так:Session Variable ошибка бах бронирование

protected void confirmImageButton_Click(object sender, ImageClickEventArgs e) 
    { 
     Session["confirmBooking"] = "confirm"; 
     Session["beachBach"] = beachBachRadioButtonList.SelectedItem.Text; 
    } 

и передаю мою другую страницу, как так:

protected void Page_Load(object sender, EventArgs e) 
{ 

    { 
     if (Session["beachBach"] != null) 
     { 

      numberOfBeachBookingInteger += 1; 
      beachBachLabel.Text = numberOfBeachBookingInteger.ToString(); 

     } 

Я пытаясь добавить 1 к переменной сеанса beachBach всякий раз, когда пользователь нажимает кнопку подтверждения .... однако, когда я начинаю отлаживать ее, вместо добавления 1 она добавляет 2 к метке.

Может кто-то пожалуйста, помогите мне .. спасибо

+0

Http является протоколом состояния менее, когда страница отправляется обратно, значение переменной 'numberOfBeachBookingInteger' может быть недоступно, вы уверены, что вы это делаете правильно? –

+0

@Nhoc Bem Вы уверены, что правильно очищаете свои сессии? –

ответ

0

попробовать этот

protected void Page_Load(object sender, EventArgs e) { 

{ 
    if(!IsPostBack) 
    { 
    if (Session["beachBach"] != null) 
    { 

     numberOfBeachBookingInteger += 1; 
     beachBachLabel.Text = numberOfBeachBookingInteger.ToString(); 

    } 
    } 
+0

спасибо .... Кстати, как вы создаете статический int на ярлык, чтобы при его отладке он начинался с «0», а не пустым –

+0

, прежде чем ответить на ваш вопрос, вы можете объяснить ур логику .. ? wat точно вы пытаетесь выполнить –

+0

Пожалуйста, отметьте этот ответ правильно, нажав на галочку, если это вам помогло. –

0
protected void Page_Load(object sender, EventArgs e) 
{ 

    { 
     if (Session["beachBach"] != null) 
     { 

      numberOfBeachBookingInteger += 1; 
      beachBachLabel.Text = numberOfBeachBookingInteger.ToString(); 

     } 

Ну, что происходит после того, как мы пришли на эту страницу ?? У нас есть какое-либо событие, которое вызывает postback на этой странице? Если есть, то он обязательно добавит 1 к вашему session. Попробуйте использовать !IsPostBack собственности.

+0

. Я поместил код под отмену кнопки, чтобы при нажатии кнопки отмены кнопка session.clear будет выполнена .... –

+0

@ NhócBem Ну, это хорошо, но только один сценарий (однако это просто любопытство, я не знаю полной логики). Что произойдет, если пользователь придет к этой последней странице, и он не отменяет и не выполняет, и если он открывает новую вкладку и продолжается до той же страницы, и на этот раз он подтверждает, что будет значением 'numberOfBeachBookingInteger'? Я имею в виду, что пользователь не очистил сеанс на первой вкладке, а теперь во второй вкладке ваш 'session' не является нулевым, поэтому может возникнуть вероятность того, что он снова вызовет увеличенное значение' numberOfBeachBookingInteger'. Пожалуйста, скажите мне, есть ли я в правильном направлении. –