发送电子邮件后响应重定向不起作用

Response Redirect not working after sending email

我有一个与 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()

当您调用 Response.End 时,响应结束。然后您不能进行重定向。

一种解决方法是让用户在单独的 HTTP 请求中下载文件,方法是提供 link 或下载文件的按钮,这样您仍然可以主要控制他们正在访问的页面。