Asp.net mvc 在asp.net mvc中使用Rotativa打印页面

Asp.net mvc 在asp.net mvc中使用Rotativa打印页面,asp.net-mvc,rotativa,Asp.net Mvc,Rotativa,我正在asp.net mvc中使用Rotativa打印应用程序中的页面 这是工作得很好,但我的问题是我想打印过滤数据 例如,我有位置表和教师,所以当单击位置A时,显示位置A的所有教师,并在每个位置内放置打印链接 这是我的控制器: public ActionResult IndexById(int? id) { var teachersD = db.TeacherDetails.AsQueryable().Include(s => s.Position);

我正在asp.net mvc中使用Rotativa打印应用程序中的页面

这是工作得很好,但我的问题是我想打印过滤数据

例如,我有位置表和教师,所以当单击位置A时,显示位置A的所有教师,并在每个位置内放置打印链接

这是我的控制器:

  public ActionResult IndexById(int? id)
    {
        var teachersD = db.TeacherDetails.AsQueryable().Include(s => s.Position);
        if (id != null) teachersD = teachersD.Where(c => c.PositionId == id);
        ViewBag.result = teachersD;
        return View(teachersD.ToList());
    }


    public ActionResult Print(int id)
    {
        var report = new ActionAsPdf("IndexById", new { PositionId = id });
        return report;
    }
这种观点:

 <td>
        @Html.ActionLink("Teacher", "Index", "TeacherDetails", new { id = item.Id }, null)
    </td>

    <td>
    <td>
        @Html.ActionLink("Print ", "Print", new { id = item.Id })

    </td>        

@ActionLink(“教师”、“索引”、“教师详细信息”,新的{id=item.id},null)
@ActionLink(“打印”、“打印”,新的{id=item.id})

您正在传递一个名为
PositionId
的值:

new ActionAsPdf("IndexById", new { PositionId = id })
但该操作需要一个名为
id
的值:

public ActionResult IndexById(int? id)
new ActionAsPdf("IndexById", new { id = id })
框架的模型/值绑定基于名称,因此它们需要匹配。由于请求中缺少
id
,因此该值最终为
null
。(如果它是
int
而不是
int?
则会出现一个关于缺少所需值的错误。)

只需将值作为
id
传递即可:

public ActionResult IndexById(int? id)
new ActionAsPdf("IndexById", new { id = id })

传入字典的模型项的类型为“System.Collections.Generic.List
1[Abu Bilal.Models.TeacherDetails]”,但此字典需要类型为“System.Collections.Generic.IEnumerable
1[Abu Bilal.Models.Position]的模型项“@programmer:听起来你的
indexbyd
action/view在这个PDF功能的上下文之外,目前无法按预期工作。您正在将
列表
传递给视图,但错误表明视图需要
IEnumerable
?(或者PDF库没有按您期望的方式使用?)IndexById的视图是什么?@programmer:顺便说一句,为什么您要将模型存储在
ViewBag
中,并直接将模型发送到视图?前者根本不需要。我现在能做什么?@programmer:indexbyd视图中的
@model
声明是什么?是否有
打印
视图?如果是,它的
@model
声明是什么?该PDF库的供应商是否提供了一个示例来演示您正在尝试做什么?这个例子是什么?