2017-02-14 1 views
0

전자 메일 및 첨부 파일 전송 actaly가 작동합니다. 내 문제는 내가 유형의 예외 'System.Exception'가 Rotativa.dll에서 발생Mail pdf Rotativa를 사용하는 첨부 파일

은 "생성 된 PDF"를 보내려고하지만 사용자 코드에서 처리되지 않았습니다이 오류입니다

추가 정보 : 오류 : 실패로드 페이지 http://localhost:49224/Offer/OfferPdf/4 (때로는 --load-에러 처리와 함께이 오류 무시 무시하기 만 작동합니다)

컨트롤러에서 메일 테스트 :

public ActionResult MailTest() 
    { 



     MailMessage msg = new MailMessage(); 
     msg.To.Add(new MailAddress(CoEmail)); 
     msg.From = new MailAddress(MailFrom, UserName); 
     msg.Subject = "Offer"; 
     msg.Body = "This is a Test"; 
     MemoryStream stream = new MemoryStream(OffersPdfMail (4, "Offer")); 
     Attachment att1 = new Attachment(stream, "Offer.pdf", "application/pdf"); 
     msg.Attachments.Add(att1); 
     msg.IsBodyHtml = true; 
     msg.BodyEncoding = System.Text.Encoding.UTF8; 
     msg.SubjectEncoding = System.Text.Encoding.Default; 

     SmtpClient client = new SmtpClient(); 
     client.UseDefaultCredentials = false; 
     client.Credentials = new System.Net.NetworkCredential(User, Pass); 
     client.Port = 587; // 
     client.Host = "smtp.office365.com"; 
     client.DeliveryMethod = SmtpDeliveryMethod.Network; 
     client.EnableSsl = true; 
     try 
     { 
      client.Send(msg); 
      return RedirectToAction("index"); 

     } 
     catch (Exception ex) 
     { 
      return HttpNotFound(); 
     } 

    } 

바이트 [] :

public Byte[] OfferPdfMail(int? id, string filename) 
    { 
    var mailpdft = new ActionAsPdf("OfferPdf/4") 
     { 
      FileName = "Offer", 
      PageSize = Rotativa.Options.Size.A4, 






      PageWidth = 210, 

      PageHeight = 297 

     }; 
     Byte[] PdfData = mailpdft.BuildPdf(ControllerContext); 
     return PdfData; 

과 ViewasPdf 지속 : 영어

 public ActionResult OfferPdf (int? id, string filename) 
    { 
     string footer = "test" ; 
     if (id == null) 
     { 
      return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
     } 




     var pdf = new ViewAsPdf("TilbudsPdf") { 
      FileName = filename, 
      PageSize = Rotativa.Options.Size.A4, 

      PageOrientation = Rotativa.Options.Orientation.Portrait, 

      PageMargins = new Rotativa.Options.Margins(12, 12, 12, 12),// it’s in millimeters 

      PageWidth = 210, 

      PageHeight = 297, 
      CustomSwitches = footer }; 

     return pdf; 
    } 

편집 해 이름을. 일부를 놓친 것일 수 있습니다. 양해 해 주셔서 감사 드리며 나쁜 영어에 대해 사과드립니다. 안부 인사 Eric

답변

0

내가 해결책을 찾았는데, 왜냐하면 나는 pdf를 만드는 데 바보 같기 때문이었다. 그래서 저는 다음과 같은 새로운 ActionResult 메소드를 만들었습니다 :

public ActionResult tilbudspdfMailView(int? id, string filename) 
    { 
     Offer Offer= db.Offer.Find(id); 

     return View("OfferPdf", Offer); 
}