这是我的索引方法,我通过它获取webgird中的数据列表。当我点击按钮时,如何编写导出此数据列表的方法?
公共ActionResult索引(字符串eMailId) {
var refEntry = _moneyReport.GetAll().Where(a => a.EmailId == eMailId).ToList();
var credittotal = _moneyReport.GetAll().Where(a => a.EmailId == eMailId && a.PromoValue < 0).Sum(a => a.PromoValue);
decimal TotalCredit = Convert.ToDecimal(credittotal * -1);
var debittotal = _moneyReport.GetAll().Where(a => a.EmailId == eMailId && a.PromoValue >0).Sum(a => a.PromoValue);
decimal TotalDebit = Convert.ToDecimal(debittotal);
ViewBag.TotDebit = TotalDebit;
ViewBag.TotCredit = TotalCredit;
if(TotalCredit>TotalDebit)
{
decimal FinalTotal = TotalCredit - TotalDebit;
ViewBag.Total = FinalTotal;
}
else
{
decimal FinalTotal = TotalDebit - TotalCredit;
ViewBag.Total = FinalTotal;
}
return View(refEntry);
}
这是我的视图页面,我在这里输入了一个emailid,加载和导出按钮`输入代码。
@using (Html.BeginForm())
{
<div class="container-fluid form-row">
<div class="col-md-12 no-padding">
<div class="col-md-3 no-padding">
<input type="text" name="eMailId" id="eMailId" />
<span class="highlight"></span>
<span class="bar"></span>
<label class="no-left">Enter Email Id <sup class="star">*</sup></label>
</div>
<div class="col-md-3">
<input type="text" id="gName" name="gName" readonly="readonly" />
<span class="highlight"></span>
<span class="bar"></span>
<label>Name</label>
</div>
<div class="col-md-3">
<input type="submit" id="btnLoad" class="btn btn-md pm-create" value="Load" />
<input type="submit" id="btnLoad" class="btn btn-md" value="Export To PDF" />
</div>
<input type="hidden" id="HdnEmail" value='@TempData["MailID"]' />
</div>
</div>
}
<div id="report-grid">
@{Html.RenderPartial("ImportMoneyReport", Model);}
</div>
ImPortMoneyReport是我的部分页面,其中包含webgrid。
答案 0 :(得分:1)
你想要一些有用且易于使用的东西。看看https://github.com/andyhutch77/MvcRazorToPdf
请阅读文档。
示例代码。看看这个。 https://github.com/andyhutch77/MvcRazorToPdf/tree/master/MvcRazorToPdfExample
如果您遇到一些问题,请访问他们的github页面并单击“问题”选项卡,或许您的一些问题已在那里得到解决。
P.S。
某些PDF库(如Rotativa)需要运行可执行程序,当您的应用程序部署到Azure时无法运行,因为Azure不支持exe文件(我想出于安全目的),否则您将创建一个webjob只是为了exe文件。
答案 1 :(得分:0)
要将模型数据导出为PDF,您必须使用第三方pdf导出库之一,如下面的少数几个。您可以在各自的网站上找到示例,也可以谷歌查看。您需要实现代码以导出pdf并通过在Response.OutputStream
操作中设置相应的内容类型将该文件/流添加到ImportMoneyReport
。此外,您必须在帖子/事件上调用ImportMoneyReport
方法,您无法使用Html.RenderPartial
导出;否则,您只能将导出代码放在Index
操作中。