我有一个非常简单的视图,它为Controler移交的每个对象呈现子视图。每个对象的信息不是单独页面上的打印。所有这一切都很好。但是,我希望页面顶部没有打印标题。使用Css我使用这个工作,但第一个打印页面将是一个空白页面。如果我刚刚删除标题,则空白页会再次消失。有没有办法在不打印空白页面的情况下使用标题?
查看:
@model IQueryable<Event>
@{
ViewBag.Title = "Druckansicht";
}
@section Scripts {
<script type="text/javascript">
$(document).ready(function () {
window.print();
})
</script>
}
<h1 class="no-print">Deine Druckansicht vom @ViewBag.StartDate bis zum @ViewBag.EndDate</h1>
@foreach (Event evnt in Model)
{
<div class="page-break">
@{Html.RenderAction("PrintChild", "Events", new { ID = evnt.EventID });}
</div>
}
的CSS:
@media print
{
.no-print
{
display: none !important;
}
.page-break
{
page-break-before: always;
}
}
链接到样式表等是在_Layout视图中完成的。
这是我最终使用的解决方案:
CSS:
@media print
{
.no-print
{
display: none !important;
}
.page-break
{
page-break-after: always;
}
.page-break-last
{
page-break-after: avoid;
}
}
查看:
@{
int i = Model.Count();
foreach (Musa.Models.Event evnt in Model)
{
if (i == 1)
{
<div class="page-break page-break-last">
@{Html.RenderAction("PrintChild", "Events", new { ID = evnt.EventID });}
</div>
}
else
{
<div class="page-break">
@{Html.RenderAction("PrintChild", "Events", new { ID = evnt.EventID });}
</div>
}
i--;
}
}
答案 0 :(得分:0)
以下方法可行:
@media print
{
.no-print
{
display: none !important;
}
.page-break
{
page-break-after: always;
}
.last-page{
page-break-after: avoid;
}
}
使用以下html:
<h1 class="no-print">Header</h1>
<div class="page-break">Test 1</div>
<div class="page-break">Test 2</div>
<div class="page-break last-page">Test 3</div>
因此,请确保最后一项获得一个额外的类标记,否则最后会得到一个空白页。