У меня есть форма asp Ajax
, на которой пользователь может отправлять данные.Предотвращение повторной отправки страницы после обновления asp.net
Это прекрасно работает, но когда он/она нажимает f5 или обновляет страницу, форму повторно передает. Это общий вопрос и дубликат.
Я читал так много вопросов на разных форумах об этой проблеме и реализовал некоторые, но проблема все еще существует.
Я не могу перенаправить страницу согласно требованиям клиента. Я взял ссылку с this question. Он работал нормально на локальной машине, но когда я развернул страницу, она не отправлялась ни разу. Я дал некоторые из моих усилий тоже, как и follows`
HiddenField hf = new HiddenField();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
createToken(); //to check page is refreshed
}
}
public void createToken()
{
string token = System.Guid.NewGuid().ToString();
Session["token"] = token;
hf.Value = token;
}
private bool TokenIsValid()
{
string expectedToken = (string)Session["token"];
if (expectedToken == null)
return false;
string actualToken = hf.Value;
return expectedToken == actualToken;
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
try
{
if (TokenIsValid()) // check that page is not refreshed by browser.
{
//insert logic
}}
catch (Exception ex)
{
}
есть Dropdownlist
, которая вызывает большую проблему AutoPostBack и AutoPostBack не может быть отключена, так значение скрытого поля промывки. Я не знаю, как предотвратить повторное представление.
Почему именно вы не можете перенаправить? Это самый простой/неудачный подход. –
Возможно, вы можете сделать переадресацию на ту же страницу с строкой запроса, в которой говорится, что это удалось. –
и отображать сообщение, правильно? то, если пользователь снова заново запустит страницу с ответом на строку запроса, будет сообщение (после обновления, а не отправки). исправьте меня, если я ошибаюсь. простите мой английский. спасибо – SMI