распечатать страницу используя Rotativa в asp.net mvc - PullRequest
0 голосов
/ 07 ноября 2019

Я использую Rotativa для печати страницы в своем приложении в asp.net mvc.

это работает хорошо, но мои проблемы в том, что я хочу напечатать данные фильтра.

Например,У меня есть таблицы позиций и учителя, поэтому, когда вы щелкнете по позиции 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;
    }

и это View:

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

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

    </td>        

1 Ответ

0 голосов
/ 07 ноября 2019

Вы передаете значение с именем PositionId:

new ActionAsPdf("IndexById", new { PositionId = id })

Но действие ожидает значение с именем id:

public ActionResult IndexById(int? id)

Привязка модели / значения платформыоснован на именах, поэтому они должны соответствовать. Поскольку в запросе отсутствует id, значение в конечном итоге будет null. (Если бы это был int вместо int?, вы бы получили ошибку об отсутствующем обязательном значении.)

Просто передайте значение как id:

new ActionAsPdf("IndexById", new { id = id })
...