ASP.NET Core 6 MVC:window.print() 后返回不通过控制器

问题描述 投票:0回答:1

我的网页上有一个图像库和一个“打印”按钮,然后使用

window.print()
调用浏览器打印。

<button class="button current" id="printButton" onClick="window.print()">
Print
</button>

我还使用了一些 CSS,使用

@@media print
来指定页面大小。

这工作得非常好,我没有发现任何充分的理由让它变得更复杂。然而,当用户完成或取消打印时,它返回到页面并且似乎刷新页面而不触发控制器。这会丢失使用 ViewBag 和 TempData 通过控制器发送到页面的各种设置。

我真的不明白什么是在不调用控制器的情况下刷新页面,

HttpGet
HttpPost
都没有注意到这一点。有什么建议吗?

html printing asp.net-core-mvc
1个回答
0
投票

它返回页面并且似乎刷新页面而没有触发控制器。这会丢失使用 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>
© www.soinside.com 2019 - 2024. All rights reserved.