Я пытаюсь выяснить, если у меня что-то не так с моей архитектурой или мне просто нужно быстрое исправление.
У меня на странице есть следующее:
<div ID="UploadDashboardDecorationZone">
<fieldset id="UploadDashboard">
<legend>Upload Dashboard</legend>
<telerik:RadUpload ID="UploadDashboardSelector" Runat="server" Width="235px" AllowedFileExtensions=".xml" MaxFileInputsCount="1" ControlObjectsVisibility="None" />
</fieldset>
<div class="BottomButton">
<telerik:RadButton ID="SubmitUploadDashboardButton" Runat="Server" Text="Upload" OnClientClicked="CloseUploadDashboard" />
</div>
</div>
Пользователь выбирает файл, который он хочет загрузить, затем он нажимает SubmitUploadDashboardButton.
У меня есть следующий код на стороне сервера:
protected void Page_Init(object sender, EventArgs e)
{
if (Request.Files.Count > 0) HandleUploadedFile();
}
Это все прекрасно работает.Загруженный файл отвечает, и я вижу изменения на своей странице.Единственная проблема заключается в том, что я оставил HTTP-метод запроса моей страницы как POST, а не GET.Это означает, что если пользователь обновит страницу, произойдут плохие вещи.
Ранее я использовал следующий фрагмент кода для решения этой проблемы:
Page.Response.Redirect(Page.Request.Url.ToString(), true);
К сожалению, это не работаетдля меня больше.Я не хочу перепрошивки, которая происходит при перезагрузке страницы (в дополнение к некоторым проблемам с кодом, которые возникают при перезагрузке).
Какие у меня есть другие варианты здесь?Если я обертываю UploadDashboardDecorationZone
с помощью UpdatePanel, тогда Request.Files будет иметь значение 0.
Существует ли быстрое исправление кода, которое является распространенным явлением?Или я упускаю что-то более глубокое в моем понимании того, как работает процесс загрузки файлов?
Спасибо.