我正在关注C# corner文章,将数据从控制器操作绑定到HTML表格,然后将数据从HTML表格导出到 iTextSharp pdf 。下面我将控制器操作方法数据绑定到html表。
@model List<ExportDataAsPDFAppl.Controllers.Employees>
@using (Html.BeginForm("exportPDF", "Home", FormMethod.Post))
{
<div>
<input type="hidden" name="gridHTML" />
<input type="submit" id="btnExportHTML" name="btnExportHTML" class="btn btn-success" value="Export Pdf" />
</div>
<div id="tblEmpData">
<table class="table table-striped table-condensed">
<thead>
<tr>
<th>ID</th>
<th>FirstName</th>
<th>LastName</th>
<th>Gender</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>@item.ID</td>
<td>@item.FirstName</td>
<td>@item.LastName</td>
<td>@item.Gender</td>
<td>@item.Salary</td>
</tr>
}
</tbody>
</table>
</div>
}
在btnExportHTML
jQuery点击功能中,隐藏变量gridHTML
与HTML表绑定。
<script type="text/javascript">
$(document).ready(function () {
$('#btnExportHTML').click(function () {
debugger;
$("input[name='gridHTML']").val($("#tblEmpData").html());
});
});
</script>
但是在导出'btnExportHTML'时,会出现HTTP 404错误。
以下是按钮btnExportHTML
点击的操作方法。
[HttpPost]
[ValidateInput(false)]
private FileResult exportPDF(string gridHTML)
{
StringReader reader = null;
Document pdfDoc = null;
PdfWriter write = null;
try
{
using (MemoryStream memorystream = new MemoryStream())
{
reader = new StringReader(gridHTML);
pdfDoc = new Document(PageSize.A4, 5f, 5f, 5f, 5f);
write = PdfWriter.GetInstance(pdfDoc, memorystream);
pdfDoc.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(write, pdfDoc, reader);
pdfDoc.Close();
return File(memorystream.ToArray(), "application/pdf", Convert.ToString(DateTime.Now + ".pdf"));
}
}
finally
{
reader.Dispose();
pdfDoc.Dispose();
write.Dispose();
}
}
请让我知道我的错误来解决这个问题。