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

时间:2016-01-20 14:34:05

标签: asp.net email response.redirect

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

1 个答案:

答案 0 :(得分:2)

当你致电Response.End时,那就是回复的结束。然后你不能进行重定向。

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