首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rotativa邮寄pdf附件

使用Rotativa邮寄pdf附件
EN

Stack Overflow用户
提问于 2017-02-14 18:26:52
回答 1查看 2.1K关注 0票数 0

发送电子邮件和附件实际上是可行的。我的问题是,当我尝试发送“生成的pdf”时,我得到这个错误。

Rotativa.dll中出现'System.Exception‘类型的异常,但未在用户代码中处理

附加信息:错误:加载页面错误失败(有时只需使用-- http://localhost:49224/Offer/OfferPdf/4 - error -handling ignore忽略此错误即可正常工作)

控制器中的邮件测试:

代码语言:javascript
复制
 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();
        }

    }

Byte[]:

代码语言:javascript
复制
 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:

代码语言:javascript
复制
      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致以最良好的问候

EN

回答 1

Stack Overflow用户

发布于 2017-02-14 18:50:16

我找到了一个解决方案,那是因为我太愚蠢了,试图把pdf变成pdf。所以我创建了一个新的ActionResult方法,如下所示:

代码语言:javascript
复制
public ActionResult tilbudspdfMailView(int? id, string filename)
    {
        Offer Offer= db.Offer.Find(id);

        return View("OfferPdf", Offer);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42223649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档