我正在尝试使用 Rotativa 组件在 Web 服务器磁盘上永久存储(不显示)发票副本。两个问题:

  • 为什么我需要指定 Controller Action ? (“索引”,在此
    案例)
  • 如何在没有文件的情况下将 FileContentResult 写入本地磁盘
    显示它?

  • 谢谢。

    这是我的代码:
        [HttpPost]
        public ActionResult ValidationDone(FormCollection formCollection, int orderId, bool fromOrderDetails)
        {
            Order orderValidated = context.Orders.Single(no => no.orderID == orderId);
    
            CommonUtils.SendInvoiceMail(orderValidated.customerID , orderValidated.orderID);
    
            var filePath = Path.Combine(Server.MapPath("/Temp"), orderValidated.invoiceID + ".pdf");
    
            var pdfResult = new ActionAsPdf("Index", new { name = orderValidated.invoiceID }) { FileName = filePath };
    
            var binary = pdfResult.BuildPdf(ControllerContext);
    
            FileContentResult fcr = File(binary, "application/pdf");
    
            // how do I save 'fcr' on disk?
     }
    

    最佳答案

    您不需要 FileContentResult 来创建文件。您已经获得了可以直接保存到磁盘的字节数组:

    var binary = pdfResult.BuildPdf(ControllerContext);
    System.IO.File.WriteAllBytes(@"c:\foobar.pdf", binary);
    

    关于asp.net-mvc - 如何将 FileContentResult 写入磁盘?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24958959/

    10-12 16:32