I'm having problems rendering some fields from my table in the PDF file. It was working fine, but I do not know what happened these fields are no longer rendering. On my My Courses screen, the student has a button that issues a Course Completion Statement , but when the student clicks the button and generates PDF fields come no data . Note: The data that render in the PDF is: Student Name , Enrollment , Course Name Period and Hours .
ViewPDF
@model MeuProjeto.Models.AlunoCurso
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<link href="~/Content/PDF.css" rel="stylesheet" type="text/css" />
<title>GeraPDF</title>
</head>
<body>
<br/> <br/>
<div id="declaracao">
<strong style="font-family: 'Times New Roman'">Declaração de Conclusão de Curso</strong>
</div>
<br/>
<hr/>
<text style="font-family: 'Times New Roman'; font-size: 20px">
Declaramos que o Sr(a). <b>@Html.DisplayFor(model => model.Aluno.Nome)</b>, matrícula de Nº <b>@Html.DisplayFor(model => model.Aluno.Matricula)</b>,
inscrito no curso de <b>@Html.DisplayFor(model => model.Curso.Nome_Curso)</b>, na XXXXX,
no período de <b>@Html.DisplayFor(model => model.Curso.Dt_Inicio)</b> a <b>@Html.DisplayFor(model => model.Curso.Dt_Fim)</b>,
cumprindo uma carga horária de <b>@Html.DisplayFor(model => model.Curso.Carga_Horaria)</b>, com total comprometimento e dedicação todos os requisitos para a conclusão deste curso,
estamos encaminhando esta via de Declaração para que seja emitido junta a XXXXXX, o
<b>Certificado</b> de conclusão de Curso.
</text>
<hr/>
<div id="assinatura">
_________________________ <span>em</span><span> ___/___/_____</span><br/>
Assinatura do Responsável
</div>
</body>
</html>
Action PDF
public ActionResult GerarPDF(int id)
{
var alunoCurso = db.AlunoCursos.FirstOrDefault(ac => ac.Aluno.Usuario == User.Identity.Name);
if (alunoCurso != null)
{
AlunoCurso aluno =
db.AlunoCursos.Include(a => a.Aluno).AsNoTracking().FirstOrDefault(al => al.AlunoId == id);
var pdf = new ViewAsPdf
{
ViewName = "GeraPDF",
FileName = "Declaração.pdf",
Model = aluno,
PageSize = Size.A4,
PageMargins = new Margins {Bottom = 2, Left = 2, Right = 2, Top = 2}
};
return pdf;
}
return View();
}
Excerpt from my View with the button that calls the PDF
@model IEnumerable<MeuProjeto.Models.AlunoCurso>
<!-- Aqui é BOTÃO onde chama a página do PDF -->
<div class="btn-group">
<div class="col-md-offset-2 col-md-10">
@if (item.Aprovado == false)
{
<input type="submit" value="Pendente de Aprovação" name="meusCursos" class="cursos btn btn-primary btn-sm" disabled="disabled" data-id="@item.Id" />
}
else
{
<a href="~/AlunoCursos/[email protected]" class="btn btn-success btn-sm"><span class="glyphicon glyphicon-print"></span></a>
}
</div>
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script>
$(document).ready(function () {
$(".cursos").click(function () {
$.ajax({
type: "POST",
url: "MeusCursos/",
data: { id: $(this).data("id") },
success: function () {
$(this).attr("enable", "enable");
}
});
});
});
</script>