2

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

我有两个表格。MainForm i LogonForm。在 MainForm 的页面加载上,我想显示 LogonForm(通过 ShowDialog)供用户连接到数据库。当结果正常时,主窗体的其余部分将加载。

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

我该如何解决?

4

1 回答 1

2

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

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

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

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

于 2012-05-23T14:18:29.843 回答