Перенаправление ответа не работает после отправки письма

asp.net email response.redirect

186 просмотра

1 ответ

У меня есть код, который работает с библиотекой EPPlus, чтобы преобразовать некоторые данные из dt в файл Excel, который он присоединяет и отправляет по электронной почте, а также загружает этот файл клиенту, отправившему его.

Однако из следующего метода onClick он ничего не делает, кроме SendModFile (), я думаю, что текст и прочее нуждается в обратной передаче, поэтому она не меняется, которую я могу убрать, но я должен отключить кнопку, чтобы процесс не отправлял более одного электронного письма и перенаправить в главное меню, как я могу это сделать.

 Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Label1.Visible = True
    Button2.Enabled = False
    Label1.Text = "Sending..."

    SendModFile()
    Label1.Text = "Sent"

    Response.Redirect("~/Main.aspx")
End Sub

Изменить: Это конец SendModFile (), который позволяет загрузить файл после отправки электронного письма, есть ли способ оптимизировать это, я считаю, что эта часть испортилась из-за Response.End ()

Response.Clear()
Response.Buffer = True
Response.ContentType = "application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AppendHeader("content-disposition", "attachment; filename=ExcelFileName.xlsx")
Response.BinaryWrite(memStream2.ToArray())
Response.End()
Автор: Javier M Источник Размещён: 16.10.2019 05:20

Ответы (1)


2 плюса

Решение

Когда вы вызываете Response.End , это конец ответа. Вы не можете тогда сделать перенаправление.

Один из обходных путей заключается в том, чтобы пользователь загружал файл в отдельном HTTP-запросе, предоставляя ссылку или кнопку, которая загружает файл, так что вы по-прежнему контролируете страницу, к которой он обращается.

Автор: mason Размещён: 20.01.2016 02:44
Вопросы из категории :
32x32