通过第三个应用程序在两个应用程序间传递数

时间:2013-08-09 18:42:58

标签: asp.net session iframe cookies web-farm

我有一个包含两个页面的asp.net应用程序添加/编辑客户和客户列表(查看)。 还有一个主机ASP.NET应用程序使用ajax tab container / accordian来托管iframe中的两个页面。因此,如下所示,TAB1包含iframe 1中的编辑客户页面,而TAB2包含查看客户页面(一次只能激活一个)。如果我必须从TAB2移动到TAB1(例如,用户点击客户列表中的编辑链接),那么我必须通过在查询字符串中传递tab的名称来刷新主机应用程序(这部分由Host App处理并且是唯一可用的方式切换TAB)。

除了查询字符串之外,将数据从TAB2传递到TAB1的最佳方法是什么?我不想通过附加查询字符串来更改主机应用程序URL,因为在不重新加载的情况下很难重置查询字符串。我的应用程序在webfarm中,并且具有基于IP会话亲缘关系的负载均衡器。我们目前在proc会话中使用但偶尔会失败,这是显而易见的。如果我无法删除out-proc会话,是否有任何经过验证的方法可以在webfarm中处理这种情况?

----------------------------------------------------------------

ASP.NET MAIN APP CONTENT

   VirDir-B

[parent]
**________________________________________________________________**

TAB1                         | TAB2

[iframe1]                    | [iframe2]    

{  Edit Cust                 | {  View Cust 
       VirDir-A }            |          VirDir A  }
                             |

更新

好吧,我使用javascript解决了这个问题,直接将iframe1的源码设置为querystring参数,因为我的所有VD都在同一个域中。

PSEUDO CODE:

在浏览页面上:

var tabContainer=$(parent.document).find('#TABCONTAINERID').control;
var iframe=$(parent.document).find('#TABCONTAINERID').children('#iframe1');
iframe.src="editCust.aspx?id=123"
tabContainer.set_activeTabIndex(0);

但是我很想知道如果我无法控制父应用程序(可能在不同的域中),如何处理这个问题。

1 个答案:

答案 0 :(得分:-1)

至少可以使用我能想到的两种方法:

  • 将数据传递给Cookie,然后在另一个标签页上阅读
  • 使用ajax将数据发送到ASP.NET主机应用程序并在另一个选项卡上下载