Автоматическая повторная отправка информации о странице - PullRequest
1 голос
/ 30 декабря 2011

Я добавил этот код в событие page_load главной страницы, чтобы предотвратить кеширование.(получено из случайных источников.)

    HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1))
    HttpContext.Current.Response.Cache.SetValidUntilExpires(False)
    HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches)
    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache)
    HttpContext.Current.Response.Cache.SetNoStore()

После обработки информации на главной странице, скажем, добавление двух чисел и отображение суммы, когда я ухожу от главной страницы и хочу вернуться назад, используя браузерКнопка, появится диалоговое окно повторной отправки с кнопками «Отправить» и «Отменить».нажатие кнопки «Отправить» загружает главную страницу вместе с ее предыдущей информацией (сумма), и «Отмена» ничего не делает. Я пытаюсь скрыть или отключить диалоговое окно и автоматически выбрать «Отправить», чтобы при нажатии пользователем кнопки браузера назад.он автоматически перенаправляется на предыдущую главную страницу без появления диалогового окна.Или есть какой-либо метод с аналогичным эффектом.Или это вообще возможно.пожалуйста, ответьте .. новичок здесь.

1 Ответ

0 голосов
/ 30 декабря 2011

Браузер показывает это сообщение, потому что ваша страница POST возвращается на сервер при нажатии кнопки.Он отправляет входные значения (два числа для суммирования), и сервер отвечает с результатом.Когда вы нажимаете «Назад», браузер предупреждает вас, потому что часто плохой идеей является POST повторное получение данных.Например, для совершения онлайн-покупки.

Чтобы обойти это, добавьте Response.Redirect(...) в обработчик Button_Click - это отправит новый запрос GET.Я могу показать код C #, я не знаю VB.NET извините:

public void Page_Load(object sender, EventArgs e) {
  if (IsPostBack) return;
  int num1, num2;
  if (Int32.TryParse(Session["num1"], out num1) && Int32.TryParse(Session["num2"], out num2)) {
    txtNum1.Text = num1.ToString();
    txtNum2.Text = num2.ToString();
    lblSum.Text = (num1 + num2).ToString();
  } 
}

internal void Button1_Click(object sender, EventArgs e) {
  Session["num1"] = txtNum1.Text;
  Session["num2"] = txtNum2.Text;
  Response.Redirect(Request.Url.PathAndQuery);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...