每个会话的 Web 窗体的单个实例
Single Instance of a WebForm per Session
我可以用来解决问题的东西:C#,ASP.NET,Javascript。
2 网页: 索引.aspx - 工作.aspx.
索引.aspx:静态和有关他们将要执行的工作的信息,一旦他们点击将他们重定向到 Work.aspx 的链接。
工作.aspx:开始与客户合作。
所以,我需要完成的是Work.aspx的单个实例。因为当他们使用 Work.aspx 时,Index.aspx 仍然是开放的(他们需要研究数据和东西),但如果他们点击 Work 的链接.aspx他们可以打开另一个实例,这不是我想要的。
我不知道实现此目的的最佳方法是什么,因为在 Mutex 上找到的所有 Ive 都是基于 winforms。(如果碰巧您有一些链接,其中包含用于在网络表单中处理互斥锁的信息,那么我也许可以从那里开始,但我还没有找到)
任何帮助将不胜感激。谢谢。
编辑。Work.aspx 是一个弹出窗口,因此员工可以同时打开两个 Web 表单。
没有也不可能有办法做到这一点。Web 应用程序本质上是无状态的,与用户的每次交互都由单独的请求-响应对组成。asp.net 为每个请求创建 Web 表单的新实例,使用它来处理请求,然后删除它。
那么,您究竟需要它做什么?在大多数情况下,可以有多个页面,但数据仍然相同。
如果我明白你在问什么,你可以尝试使用超链接.Target属性始终在同一命名窗口中打开Work.aspx。
<asp:Hyperlink runat="server" ... NavigateUrl="Work.aspx" Target="work" ... />
更新以回应评论
他们触发了一些事情,以便用他们需要的信息填充工作.aspx......
你需要做的是"记住"工作的状态.aspx服务器端,例如通过将状态数据存储在Session
(或其他地方:例如数据库)中。 然后,每次请求 Work.aspx 时,呈现具有相应状态的版本。
我现在能想到的是:当他们第一次开放工作时.aspx第一次。将会话变量设置为 true。下次他们再次点击 START-WORKING 时,请事先检查该会话变量以了解它们是否被允许。你指的是像乔这样的东西吗?
我认为他们应该始终被"允许"打开新的作品.aspx。 毕竟,用户可能已经关闭了上一个 Work.aspx 窗口,您不会知道这个服务器端。 您应该始终允许用户"开始工作" - 但显示具有最新状态的工作.aspx,您已将其保存在服务器端的某个地方(例如会话)。
- Javascript:只有在代码中使用单个实例时,函数才能正常工作
- 每个会话的 Web 窗体的单个实例
- javascript正则表达式,将多个实例替换为多行字符串中的单个实例
- 在nodejs中,如何使模块的单个实例具有不同参数的构造函数
- Ember.js:如何使用模型的单个实例创建路由/控制器
- 由表达式文本创建的正则表达式是否共享单个实例
- 如何匹配并返回一个字符串的多个实例,其中单个撇号可以包含在任何索引中
- 无法在单个 HTML 页面上显示 Java/CSS 图像库的多个实例
- 如何在jQuery中处理单个类的多个实例
- 在单个页面上使用此.js 2 次时,它仅适用于一个实例
- 不同组件上的单个或多个存储实例
- 创建在单个服务器上运行的metro.js应用程序的多个实例需要哪些主要步骤
- Javascript:当生成id时,需要删除页面上一个类的单个实例
- Javascript-查找属性的单个实例's在对象数组中的值
- 如何为单个实例动态更改buttonImage
- 允许组件及其子组件在service中访问ngModel的单个实例
- 打开单个实例的弹出窗口IE
- 仅针对单个实例显示 jquery 向下滑动
- jQuery:在动态创建的表中访问类的单个实例
- 续集单个实例 - 模块导出后不起作用