У меня есть пользовательская dll, загруженная в мое веб-приложение, я обновил ее и перезагрузил ссылку в моем основном веб-приложении.По сути, он работает так, как пользователь загружает файл, который проверяется функцией в DLL.Затем пользователь может нажать кнопку в разделе результатов, которая перенаправляет в основной раздел приложения, чтобы у него была возможность перезапустить программу проверки;Я говорю «раздел», потому что веб-приложение использует одну страницу с двумя элементами div, одним для формы и другим для результатов, а затем код заменяет видимость div формы на div результатов, вот базовый макет, который необходимо пояснить.
<body>
<div id="divForm" style="visibility: visible;">
</div>
<div id="divResults">
</div>
</body>
Вызов перенаправления в следующем коде выглядит следующим образом:
protected void btnReturn_Click(object sender, EventArgs e)
{
Response.Redirect("http://localhost/file_checker/");
}
И основной фрагмент средства проверки файлов:
protected void Page_Load(object sender, EventArgs e)
{
divForm.Visible = true;
divResults.Visible = false;
if (Page.IsPostBack)
{
//Do file checking
//Show results
divResults.Visible = true;
divForm.Visible = false;
}
}
Веб-приложениеотлично работает на первом проходе, однако я замечаю странное поведение после каждого последующего прохода.Например, я заметил, что на странице результатов отображается устаревшее содержимое из более старой версии dll, т. Е. Отображается строка, сгенерированная более старой версией dll, я удалил эту строку, но она все еще генерируется.Я не уверен, правильно ли я перенаправляю или есть какое-то другое фундаментальное недоразумение с тем, как работают перенаправления.Приветствуется любая помощь или понимание.
ОБНОВЛЕНИЕ:
Хорошо, вместо перенаправления, я просто очистил сетку в разделе результатов и поменял стили div, чтобы показать основной раздел и скрытьраздел результатов выглядит следующим образом:
protected void btnReturn_Click(object sender, EventArgs e)
{
//Clear the Gridview and show the upload Form
GridView1.DataSource = null; //<--Is popoulated by a DataTable
divForm.Visible = true;
divResults.Visible = false;
//Response.Redirect("http://localhost/file_checker/");
}
Кажется, это решает проблему, у меня есть вопрос: я использую Datatable для заполнения Gridview на странице результатов.Может ли Datatable автоматически располагаться после каждой загрузки страницы или события нажатия кнопки?Или это будет продолжаться?Я просто хочу избежать проблем с утечкой памяти, поскольку каждая загрузка страницы создает новый объект DataTable.