Export aspx page to pdf and sent it via mail in asp.net
<p>I want to send aspx page via email. So i converted it into pdf. The problrm is the pdf is getting created before the data is saved. So when i open the pdf my testboxes are empty. Please find me a solution. Below is the code am using. Also i want to send the pdf file as attachment.</p>

<pre><code>     protected void SendMail()
    {

        var userName = "4.n-4@gmail.com";

        var toAddress = YourEmail.Text.ToString();

        const string Password = "Mypassword123#";

        string subject = YourSubject.Text.ToString();
        string body = "From: " + YourName.Text + "\n";
        body += "Email: " + YourEmail.Text + "\n";
        body += "Subject: " + YourSubject.Text + "\n";
        body += "Question: \n" + Comments.Text + "\n";

        var smtp = new System.Net.Mail.SmtpClient();
        {
            smtp.Host = "10.238.52.240";
            smtp.Port = 25;
            smtp.EnableSsl = false;
            smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            smtp.Credentials = new NetworkCredential(userName, Password);
            smtp.Timeout = 20000;
        }

        smtp.Send(userName, toAddress, subject, body);
    }

     protected void Button1_Click(object sender, EventArgs e)
    {

        Response.ContentType = "application/pdf"; 
        Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache); 
        StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); 
        this.Page.RenderControl(hw); 
        StringReader sr = new StringReader(sw.ToString());
        Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f); 
        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
        pdfDoc.Open(); 
        htmlparser.Parse(sr); 

        Response.Write(pdfDoc);


         try
        {
             SendMail();

            DisplayMessage.Text = "Your Comments after sending the mail";
            DisplayMessage.Visible = true;
            YourSubject.Text = "";
            YourEmail.Text = "";
            YourName.Text = "";
            Comments.Text = "";
            pdfDoc.Close();
            Response.End();
        }
        catch (Exception) { }
    }
        }
      }
</code></pre>
