0

我可以用什么来解决这个问题:C#ASP.NETJavascript

2 个网页:Index.aspx - Work.aspx

Index.aspx:当他们点击将他们重定向到 Work.aspx 的链接后,他们将要做的工作的统计和信息。

Work.aspx:开始与客户合作。

因此,我需要完成的是 Work.aspx 的单个实例。因为当他们使用 Work.aspx 时,Index.aspx 仍然是打开的(他们需要研究数据和东西),但是如果他们点击 Work.aspx 的链接,他们就会打开另一个实例,这不是我想要的。

我不知道实现这一点的最佳方法是什么,因为我在 Mutex 上找到的所有内容都是基于 winforms。(如果碰巧您有一些链接,其中包含用于在网络表单中处理互斥锁的信息,那么我可能可以从那里开始,但我还没有找到)

任何帮助将不胜感激。谢谢。

编辑。 Work.aspx 是一个弹出窗口,因此员工可以同时打开两个 Web 表单。

4

2 回答 2

3

没有也不可能做到这一点。Web 应用程序本质上是无状态的,与用户的每次交互都由单独的请求-响应对组成。asp.net 为每个请求创建新的 Web 表单实例,使用它来处理请求并在之后将其删除。

那么你到底需要什么?在大多数情况下,可以有不止一页,但仍然是相同的数据。

于 2012-08-09T13:38:49.033 回答
2

如果我理解您的要求,您可以尝试使用Hyperlink.Target属性始终在同一个命名窗口中打开 Work.aspx。

<asp:Hyperlink runat="server" ... NavigateUrl="Work.aspx" Target="work" ... />

更新以回应评论

他们触发了一些事情,以便用他们需要的信息填充 Work.aspx ...

您需要做的是“记住”Work.aspx 服务器端的状态,例如将状态数据存储在Session(或其他地方:例如数据库)中。然后每次请求 Work.aspx 时,呈现具有适当状态的版本。

我现在能想到的是:当他们第一次打开 work.aspx 时。将 Session 变量设置为 true。每次他们再次点击 START-WORKING 时,请事先检查该会话变量以了解它们是否被允许。你指的是像这样的乔吗?

我认为他们应该始终被“允许”打开一个新的 Work.aspx。毕竟,用户可能已经关闭了之前的 Work.aspx 窗口,而你不会知道这个服务器端。您应该始终允许用户“开始工作” - 但显示 Work.aspx 具有最新状态,您已将其保存在服务器端某处(例如 Session)。

于 2012-08-09T13:41:25.887 回答