等待用户输入

时间:2009-03-23 17:33:19

标签: c# asp.net events webforms

我有一个进程调用Web服务并处理响应,一些响应需要一些用户输入,以便可以处理它们。当需要用户输入时我想触发一个事件,在事件处理程序中我想向页面显示一个表单然后等到用户输入被回发然后让事件处理程序将用户输入返回给调用方法。

我很难让事件处理程序在返回输入之前等待回发,我甚至不知道它是否可能。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,我认为这里的问题是你正在尝试使用一个非常简单的基于事件的系统解决问题。你需要做的是为这样的任务创建你自己的(非常简单的)工作流系统,并尝试从UI处理中分离出一些后端逻辑(虽然ASP.NET MVC框架是理想的,但是我看到你正在使用WebForms,但这不是一个大问题)。现在这个“工作流程”不一定非常复杂。首先将应用程序执行的操作分解为某种流程图。如果您可以看到非常直接的依赖关系,那么它可能只是实现基本状态机的问题。作为处理Web应用程序(各种类型:应用程序,会话,视图)中的状态的一般指针,请阅读this page上的一些链接。我担心我不能真正为你提供你所描述的更具体的东西(也许我错过了一些明显的东西)。如果您想澄清您的网站/ Web应用程序需要执行的任务,那么我可能会提供一些代码示例,但我怀疑只是从流程角度分析处理此问题应该会给您一个很好的解决方案

答案 1 :(得分:0)

就个人而言,我更喜欢Noldorin关于确定工作流程并使用它来确定何时要求输入的建议。请记住,就客户端呈现而言,服务器事件不会执行任何操作,除非它们在用户发出请求时发生...在这种情况下,您已经拥有工作流并且不需要事件。

您可以通过保持客户端计算机与服务器通信来解决此问题。例如,检查<asp:Timer>控件的Tick事件中的新事件。如果你的目标是,例如,有一个更新面板或者说服务器已经完成处理用户请求的XX%,并且在处理完成后要求用户输入,那么这个解决方案是实用的。