2016-01-18 2 views
1

Возможно, некоторые из вас знают проблему, что форма будет повторно отправлена ​​при нажатии обновления браузера, нажав F5. Я ищу способ, чтобы предотвратить это, и все, что я нашел это решение сделать редирект на той же странице, после того, как представитьПредотвратить повторную отправку формы без page.redirect

Response.Redirect(Request.RawUrl); 

Это работает, но моя проблема в том, что мне нужно вводить javascript в placeholder после обратной передачи, и поэтому эта информация теряется из-за перенаправления.

PlaceHolder p1 = this.NamingContainer.Parent.FindControl("phPostScript") as PlaceHolder; 
GenerateJsTag(script,p1); 
Response.Redirect(Request.RawUrl); 

Есть ли способ предотвратить повторную передачу без перенаправления?

Благодаря

ответ

1

Есть ли способ я могу предотвратить без повторной передачи Перенаправление?

Даже если есть, вы должны придерживаться такого подхода, который перенаправляется после отправки.

Что касается JS после отправки почты, я считаю, что вы хотите увидеть эти выходные JS даже после обновления после перенаправления.

Что вы можете сделать, это перенаправить на Request.RawUrl+"#someValue", а затем в страницуLoad (не в пределах IsPostBack) вы можете снова добавить эти сценарии, зная, что вы уже показали это пользователю через эту hashkey (также может быть файл cookie или запрос строка, на самом деле не имеет значения) - или показать сообщение типа («Сообщение уже принято» ...) или что-то в этом роде.

2

Попробуйте добавить следующий код JavaScript на свою страницу aspx.

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

//bind keydown event to method that disables F5 
$(document).on("keydown", PreventRefresh); 

function PreventRefresh(e) { 
      var code = e.which || e.keyCode; 
      if (code === 116) { 
       e.preventDefault(); 
      } 
} 
+0

Отключение базовой функциональности браузера не рекомендуется имо –

+0

Да, я согласен с вами 100%. Это следует считать стандартным поведением и не изменяться. – Sunil

+0

Я добавил примечание, чтобы подчеркнуть, что вы сказали. – Sunil

Смежные вопросы