2012-05-23 37 views
2

什麼是WebGUI中與ShowDialog的,解決問題的最好方法是什麼?的ShowDialog在WEBGUI不會等待響應

我有兩種形式。 MainForm我LogonForm。 在MainForm的頁面加載我想顯示LogonForm(通過ShowDialog)用戶連接到數據庫。 當結果正常時,將加載其餘的mainform。

但在WebGUI中ShowDialog的工作方式不同,如的WinForms。顯示LogonFrom後,它不會等待響應(所以響應不正常)。

我該如何解決呢?

回答

2

由於網站的性質,整個Load方法任何事情之前必須完成可以被髮送到客戶端。理論上,您可以構建整個頁面,隱藏所有內容,然後在成功登錄後顯示它,但這仍然需要將頁面的所有信息發送給客戶端,並且任何適度精明的用戶如果他們願意,可以查看所有內容。

你需要做的是不在對話框下面的頁面上生成任何東西,當用戶按下登錄彈出框中的「提交」(或其他)按鈕時,你應該發送一個新的請求到服務器(而不是比試圖處理它的客戶端)在其中你認證用戶,並在適當的情況下,重定向到主頁。

現在通常網站會只是它發送您到正規的頁面創建一個單獨的登錄頁面。如果你想有一個彈出窗口,你可以,但它只是一個空白網站頂部的彈出窗口,它會重定向到一個沒有彈出窗口的全新頁面(成功登錄時)。

Web環境從桌面應用程序本質的不同,它需要你顯著模式的轉變,作爲一個程序員。該解決方案不僅僅是「如何阻止表單加載,直到彈出完成」,因爲阻止表單加載意味着用戶永遠不會看到一件事情(導致死鎖)。