在ASP MVC页面之间传递变量而不将其发送到服务器
Passing variables between ASP MVC pages without sending it to server
我正在创建一个使用ASP.NET MVC 4的网站。该应用程序由两个页面组成,其工作流程类似于谷歌地图。在第一个页面上,用户输入患者的姓名、出生日期和有关该患者的一些基本数据。然后,用户提交表单,并进入应用程序的第二页。第二个页面只是用户可以打印的打印预览。我希望用户能够使用浏览器的后退和前进按钮在两个页面之间导航(例如,在看到第二个页面后更改第一个页面上的输入)
实际上,计算打印输出上显示的数据非常复杂,我真的想让所有的代码都在服务器端执行,在那里我可以使用C#。所以我需要将患者的数据发送到服务器。问题是我没有SSL证书,我不想通过HTTP将患者的姓名和他们的数据一起发送(因为这侵犯了隐私)。我愿意通过HTTP发送患者的数据,只要它与患者的身份保持分离(在客户端除外)。姓名和出生日期只显示在打印输出的角落里,丝毫不影响服务器端的计算。
我能想出两种可能的方法来完成这项任务。第一种更可取的解决方案是,通过HTTP只发送一些表单数据,但仍然可以在第二个页面上运行的客户端jquery中从第一个页面获得姓名和出生日期。也许我可以制作一个cookie,并以某种方式指定不将其作为http请求的一部分发送?
实现这一点的另一种方法是将整个应用程序变成一个页面,并通过客户端jquery动态更改内容。在这个解决方案中,当用户提交表单时,我可以发出一个ajax请求,该请求将返回JSON。然后,我可以用从服务器(即JSON)和表单(即患者的姓名和出生日期)返回的数据填充打印预览。如果数据输入页面和打印预览页面实际上是同一页面,那么有没有一种方法可以实现这一点,同时仍然允许用户使用浏览器的前后命令在它们之间导航?
我不相信你所描述的可能没有严重的缺点。当然,你可以将数据汇总到cookie或本地存储中,从而避免POST——但在你看来,这是一个非常糟糕的黑客行为。
我建议的选项是:
-
获取SSL证书 。如果这是你方法背后的驱动力,那么花6美元买一个。认真地
-
将打印视图与表单保持在同一页中;使用css
@media
类型指定打印样式。
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 如何在HTML中显示服务器对象变量
- 未捕获的SyntaxError:具有服务器变量的意外标识符
- 如何向服务器端提交javascript变量
- 保存服务器中的变量
- 在app.settings中传递javascript变量(客户端变量到服务器端)
- 如果JS会话变量为null,如何避免500内部服务器错误
- 将变量从服务器上的外部文件加载到 HTML 文档中
- ASP:代码隐藏的字段变量在从更新面板中的服务器返回时丢失值
- 在客户端访问服务器变量时获取空字符串
- 将服务器变量设置为蒙戈集合 Meteor.js 中保存的数据
- 在ASP.NET WebForms中将服务器变量传递给客户端的正确方式
- 函数中的服务器变量
- 我如何传递node.js服务器变量到我的angular/html视图
- 如何在XSLT中添加服务器变量
- 如何仅在特定事件之后加载服务器变量
- 我如何在层之间传递http服务器变量,而不是将其用作node.js中不同文件中的require语句
- 如何在服务器变量改变值时触发jquery的变化?
- 如何在javascript上下文中定义服务器变量
- 服务器变量无法在谷歌标签管理器中识别.类型标签