WebGui中的ShowDialog不会等待响应

时间:2012-05-23 13:52:53

标签: c# asp.net html5 visual-web-gui

在webgui中解决ShowDialog问题的最佳方法是什么?

我有两张表格。 MainForm i LogonForm。 在MainForm页面加载时,我想显示LogonForm(通过ShowDialog)以便用户连接到db。 当结果正常时,其余的mainform将加载。

但在webgui中,ShowDialog的工作方式与WinForms不同。在显示LogonFrom之后,它不会等待响应(因此响应不正常)。

我该如何解决?

1 个答案:

答案 0 :(得分:2)

由于网站的性质,在将任何内容发送到客户端之前,必须完成整个Load方法。理论上,您可以构建整个页面,隐藏所有内容,然后在成功登录后显示它,但这仍然需要将页面的所有信息发送到客户端,以及任何中等精通的用户如果他们愿意,他们可以查看所有内容。

您需要做的是不在对话框下面的页面上生成任何内容,当用户按下登录弹出窗口中的“提交”(或其他)按钮时,您应该向服务器发送新请求(而不是尝试处理客户端),在其中对用户进行身份验证,并在适当的情况下将其重定向到主页。

现在,网站通常只有一个单独的登录页面,可以将您发送到常规页面。如果你想有一个弹出窗口,你可以,但它只是一个空白网站上的弹出窗口,重定向到一个没有弹出窗口的全新页面(成功登录)。

Web环境本质上与桌面应用程序不同,它需要您作为程序员的重大范例转换。解决方案不仅仅是“如何在弹出窗口完成之前阻止表单加载”,因为阻止表单加载意味着用户永远不会看到任何东西(这会导致死锁)。