Итак, я прочитал об этом методе, называемом PRG, как способ решения проблемы двойной отправки формы. Однако мне еще предстоит найти нисходящую реализацию Сводной страницы / Успешного сообщения, отображаемого для пользователя. Я могу думать только о том, чтобы сохранить переменную сеанса, но я не хочу, чтобы она сохранялась при многократных обновлениях. Это должно показать сообщение / резюме один раз, и будет сделано. Кроме того, было бы идеально, если бы пользователь не мог вернуться на ранее отправленную страницу.
Вот мой код PRG:
Protected Sub InsertRequest() Handles wizard.FinishButtonClick
Using connection As New SqlConnection(connectionStr)
Dim insertQuery As New SqlCommand("spInsertRequest", connection)
insertQuery.CommandType = CommandType.StoredProcedure
'1 - SETUP SQL PARAMETERS (omitted for brevity)
'2 - POST (inserts record into DB)
Try
connection.Open()
insertQuery.ExecuteNonQuery()
connection.Close()
Catch ex As Exception
Logger.WriteToErrorLog(Me, ex.Source, ex.Message, ex.StackTrace)
End Try
'3 - REDIRECT (to the same page and...)
Try
Dim urlRedirect As String = If(IsNothing(Request.Url), "", IO.Path.GetFileName(Request.Url.AbsolutePath)) 'Gets the filename of the current page.
If Not String.IsNullOrEmpty(urlRedirect) Then
Session.Add("referrerPage", urlRedirect) 'Used for identifying when the page is being redirected back to itself.
PageExt.AddParam(urlRedirect, "id", recID.ToString)
Response.Redirect(urlRedirect)
End If
Catch ex As Exception
Logger.WriteToErrorLog(Me, ex.Source, ex.Message, ex.StackTrace)
End Try
End Sub
'4 - GET (Display 'Success' message/summary here)
Вопрос в том, как отобразить это сообщение на перенаправлении, которое является прямым результатом отправки, и желательно не для дальнейших обновлений? Или просто отображать сообщение независимо от обновлений, что бы ни было проще и выгоднее. Спасибо;)