Запретить открытие приложения при обновлении браузера - PullRequest
0 голосов
/ 19 декабря 2010

У меня есть приложение ASP.NET/C#, которое экспортирует некоторые данные в электронную таблицу Excel с помощью COM-взаимодействия одним нажатием кнопки. Когда я нажимаю кнопку, открывается Excel с созданной электронной таблицей. Для чего это стоит, вот код кнопки:

<asp:Button ID="export" Text="Export to spreadsheet" runat="server" OnClick="Export_Workbook" />

Это работает нормально, кроме тех случаев, когда я нажимаю кнопку, закрываю следующую электронную таблицу и обновляю страницу. Когда страница обновляется после нажатия кнопки, снова вызывается Export_Workbook(), и снова открывается электронная таблица. Например, Firefox сообщает об этом при обновлении: «Чтобы отобразить эту страницу, Firefox должен отправить информацию, которая будет повторять любое действие (например, поиск или подтверждение заказа), которое было выполнено ранее». Это то, чего я хочу избежать.

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

Редактировать

Я сделал это, выполнив следующее:

protected void Export_Workbook(object sender, EventArgs e)
{
    Response.Redirect(Request.Url.AbsolutePath, false);
    ItemList.Prepare_Workbook();
}

Не очень элегантное решение, но оно работает. Я все еще открыт для предложений.

Ответы [ 2 ]

1 голос
/ 19 декабря 2010

Вы должны перенаправить обратно на текущую страницу в какой-то момент в конце обратной передачи, чтобы предотвратить повторную отправку формы.Это называется шаблоном Post / Redirect / Get .

0 голосов
/ 19 декабря 2010

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

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