0

我正在使用 ASP.NET MVC 4 创建一个网站。该应用程序由两个页面组成,其工作流程类似于 Google 地图。在第一页上,用户输入患者的姓名、出生日期和有关该患者的一些基本数据。然后用户提交表单,并被带到应用程序的第二页。第二页只是用户可以打印的打印预览。我希望用户能够使用浏览器的后退和前进按钮在两个页面之间导航(例如,在看到第二页后更改第一页上的输入)

实际上计算打印输出上出现的数据非常复杂,我真的希望所有代码都在服务器端执行,在那里我可以使用 C#。所以我需要将患者的数据发送到服务器。问题是我没有 SSL 证书,我不想通过 HTTP 发送病人的姓名和他们的数据(因为这侵犯了隐私)。我愿意通过 HTTP 发送患者的数据,只要它与患者的身份保持分离(客户端除外)。姓名和出生日期简单地显示在打印输出的一角,丝毫不影响服务器端的计算。

我可以想到两种可能的方法来完成这项任务。第一个,更优选的解决方案是通过 HTTP 仅发送一些表单数据,但仍以某种方式从第二页上运行的客户端 jquery 的第一页获取姓名和出生日期。也许我可以制作一个 cookie 并以某种方式指定不将其作为 http 请求的一部分发送?

实现这一点的另一种方法是将整个应用程序变成一个页面,并通过客户端 jquery 动态更改内容。在这个解决方案中,当用户提交表单时,我可以触发一个将返回 JSON 的 ajax 请求。然后,我可以使用从服务器(即 JSON)以及表单(即患者姓名和出生日期)返回的数据填充打印预览。有没有办法做到这一点,同时仍然允许用户使用浏览器的后退和前进命令在数据输入页面和打印预览页面之间导航(如果它们实际上是同一页面)?

4

1 回答 1

2

我不相信你所描述的可能没有严重的缺点。当然,您可以将数据汇总到 cookie 或本地存储中并避免 POST——但在您看来这是很多逻辑,而且是非常讨厌的 hack。

我建议的选项是:

  • 获取 SSL 证书。如果这是您的方法背后的驱动力,那么花 6 美元买一个。严重地。

  • 将打印视图与表单保持在同一页面中;使用 css@media类型来指定打印样式。

于 2013-08-28T12:14:08.323 回答