我的网页上有一个图像库和一个“打印”按钮,然后使用
window.print()
调用浏览器打印。
<button class="button current" id="printButton" onClick="window.print()">
Print
</button>
我还使用了一些 CSS,使用
@@media print
来指定页面大小。
这工作得非常好,我没有发现任何充分的理由让它变得更复杂。然而,当用户完成或取消打印时,它返回到页面并且似乎刷新页面而不触发控制器。这会丢失使用 ViewBag 和 TempData 通过控制器发送到页面的各种设置。
我真的不明白什么是在不调用控制器的情况下刷新页面,
HttpGet
和HttpPost
都没有注意到这一点。有什么建议吗?
它返回页面并且似乎刷新页面而没有触发控制器。这会丢失使用 ViewBag 和 TempData 通过控制器发送到页面的各种设置。
首先,如果页面刷新/重新加载,请求将从浏览器端发出并到达Web服务器和控制器操作,然后生成视图结果并将响应发送到浏览器。
有关 ASP.NET Core MVC 请求生命周期的更多信息,您可以查看此文档:https://www.c-sharpcorner.com/article/asp-net-core-mvc-request-life-cycle/
此外,如果您想在单击打印按钮后阻止页面重新加载/刷新以保留原始输入/内容,您可以尝试修改如下代码。
<button class="button current" id="printButton" onClick="window.print();return false;">
Print
</button>