在同一控制器中的两个功能之间发送数据

时间:2016-03-24 09:43:49

标签: .net controller asp.net-mvc-5

我的控制器出了问题。我想从一个函数向另一个函数发送一个对象“EtapeItineraire”。

当我调用第一个函数时,我收到了良好的数据。

[enter image description here]

[HttpPost]
public ActionResult PrintString(string id)
{
     List<EtapeItineraire> id2 = new List<EtapeItineraire>();

     id2 = JsonConvert.DeserializeObject<List<EtapeItineraire>>(id);
     return new Rotativa.ActionAsPdf(
                    "ViewPrint",
                    id2) { FileName = "Cartographie.pdf" };
}

Rotativa是一个可以转换pdf文件中的View

的库

但我用rotativa调用第二个函数,数据没有通过。

[enter image description here]

 public ActionResult ViewPrint(List<EtapeItineraire> id)
 {
      return View(id);
 }

型号:

public class EtapeItineraire
{
     public string distance { get; set; }
     public string instruction { get; set; }

     public EtapeItineraire(string distance, string instruction)
     {
         this.distance = distance;
         this.instruction = instruction;
     }
     public EtapeItineraire() { }
 }

1 个答案:

答案 0 :(得分:0)

代码应如下所示

return new Rotativa.ActionAsPdf("ViewPrint", new { id = id2}) { FileName = "Cartographie.pdf" };

根据Rotativa on GitHub

的例子

用法:

public ActionResult PrintIndex()
{
    return new ActionAsPdf("Index", new { name = "Giorgio" }) { FileName = "Test.pdf" };
}

public ActionResult Index(string name)
{
    ViewBag.Message = string.Format("Hello {0} to ASP.NET MVC!", name);

    return View();
}