0

我正在开发一个使用 mvcrazortopdf 下载 pdf 文件的程序。第一次单击时,它会引发NullReferenceException错误。这是我的代码:

控制器:(ReviewerController.cs)

    public ActionResult PicOrderPDF() //error on this line
    {
        PurchaseOrder req = (PurchaseOrder)Session["purchaseOrderData"];
        var date = String.Format("{0:yyyyMMdd}", DateTime.Now);

        return new PdfActionResult(req)
        {
            FileDownloadName = date + "-PurchaseOrder" + (req.PicID).ToString("D4") + ".pdf"
        };

    }
    [HttpPost]
    public ActionResult DownloadPdf(PurchaseOrder purchaseOrder)
    {
        Session["purchaseOrderData"] = purchaseOrder;
        return RedirectToAction("PicOrderPDF", "Reviewer");

    }

型号:(PurchaseOrder.cs)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace SampleProject.Models
{
    public class PurchaseOrder : Account
    {

       public int PicID { get; set; }
       public DateTime RequiredDate { get; set; }

    }
}

PicOrderPDF 是要下载的 pdf 的视图。我尝试在错误行添加断点进行检查,结果 req 为空。但继续并再次单击下载后,它下载就好了。抱歉,我是新手

4

1 回答 1

1

问题是第一次清除会话,通过添加解决

protected void Session_Start()
 {

 }

在中Global.asax.cs您还可以检查控制器操作方法之间丢失的此会话变量

于 2017-05-13T06:20:21.047 回答