【问题标题】:asp.net mvc or javascript return results of another page to methodasp.net mvc 或 javascript 将另一个页面的结果返回给方法
【发布时间】:2014-08-25 23:52:19
【问题描述】:

是否可以将另一个页面的结果返回给 JavaScript 方法或 C# 控制器操作?

我有一个在我的网站上使用的共享复杂页面,目前用于在 C# 后端的用户数据上设置单个变量。当用户完成共享复杂页面时,我返回引用页面。我返回的页面包含新选择的变量,当用户在刷新或作为 url 参数传递给返回页面时返回时。

我有一个新页面,我希望返回共享复杂页面中的变量。但是,页面上将有此变量的多个实例,它们实际上是不同于 C# 后端用户数据中先前存储的单个变量的数据。即,我希望页面上有几个按钮可以通向我的共享复杂页面,并且当用户返回每个按钮的数据时,按钮旁边会显示。

在 JavaScript 或 C# 中有没有办法显示另一个页面并将结果返回给实例化页面显示的方法?如果我的后端是在方案中实现的,我会使用延续来实现这个结果。 C#中是否有任何等价物?我一直在研究 C# 中的异步任务,但没有一个示例显示用户与另一个页面交互作为异步操作的一部分。这可能吗?

如果不是,我将不得不通过 URL 参数将值传回新页面。我想避免这种情况,因为我需要在两个页面之间传递大量的上下文数据。我曾想过使用来自共享复杂页面的重定向来更新后端的新数据,然后再返回新页面来解决一半的问题,但是这个网站可以在移动设备上运行,因此网络延迟排除了重定向。将复杂的共享页面作为新页面中的弹出对话框也不会真正起作用,因为它是 a) 复杂 b) 新页面可以用于现有页面上的弹出窗口,并且从弹出窗口中弹出是Bootstrap 不支持。

【问题讨论】:

  • 嘿,您的描述令人困惑。你能澄清一下吗?听起来您正试图在两个不同浏览器上的两个不同页面之间共享数据?或者,您是否正在对服务器进行传统的回发并试图将数据从一个页面获取到另一个页面?不完全清楚你在这里做什么。
  • @ThinkingSites 不,我正在尝试在同一浏览器中的页面之间共享信息。我有效地尝试做的是使用我共享的复杂页面作为对话框。我试图变得懒惰并避免将任何位置上下文传递给共享的复杂页面。共享的复杂页面当前使用此位置上下文来确定它应该返回到哪个页面。返回页面在调用时将复杂页面的返回值作为参数传递。我再次尝试做的是懒惰并避免按照double.co.nz/scheme/modal-web-server.html传递上下文数据。
  • @ThinkingSites 我是一位老 Windows 程序员,我试图模拟的是从程序中的任何位置调用共享对话框,而不必将代码放入担心应该放在哪里的对话框中即将返回。
  • 除了cookies之外,您在同一浏览器中的窗口之间并没有真正的共享资源。有诸如索引数据库之类的东西,它是每个域的共享数据源,但这可能不是您想要的,因为这不是真正的消息传递。目前有多种 HTML5 数据存储选项。您可能真正需要的是一个 ajax 解决方案,您可以在其中返回服务器获取所需的数据,而不是尝试在浏览器窗口之间共享数据。您的服务器端语言是什么,这可能有助于找出您的解决方案。
  • @ThinkingSites 我的服务器端语言是 C#。这正是我的问题。我没有这种语言的续集。我想知道 .NET 4.5 的新异步功能是否可以适应这个角色。再次查看double.co.nz/scheme/modal-web-server.html,了解我所追求的。使用索引数据库仍然需要我编写代​​码来存储请求的上下文,以便我可以检索结果,这样就不会为我节省任何工作。不过谢谢你的想法。我可以结合使用后端代码和/或 Ajax 来实现所有这些。

标签: c# javascript continuations


【解决方案1】:

在没有建立延续媒介的情况下,在网页之间共享数据需要在某处使用共享状态,例如会话变量或 cookie。当每个页面更改状态时,它可以返回服务器,更新该会话,当该过程完成时,您将通过 ajax 读取该会话并完成您的过程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 2015-07-10
    • 2013-05-26
    • 2011-06-17
    • 2022-11-27
    相关资源
    最近更新 更多