2011-05-10 71 views
0

我有一個用戶可以搜索各種項目的c#/ asp.net 4.0(不是MVC)網站。搜索/結果功能的工作原理如下:關於wcf和頁面導航的設計問題

在搜索頁面上,用戶填寫搜索條件(文本框,下拉列表等),然後單擊提交按鈕。 on_click事件處理程序會執行一些驗證和/或錯誤檢查。如果一切都檢出,我創建一個對象來保存所有值並將對象放入會話中。然後我做了一個response.redirect到結果頁面。在結果頁面上,我讀取會話中的對象並聯系wcf服務並將對象傳遞給它。 wcf執行搜索並返回結果(如果有)並顯示結果。

我很好奇,如果有更好的方法來做到這一點。它工作正常,但有些事情對此感覺不對。我不太想知道如何將對象加載到會話中。

我希望將對象(使用搜索標準)發送到wcf,然後執行重定向,使結果頁面保持加載狀態,直到從wcf服務獲得響應。一旦我得到結果,請繼續前進,並加載結果頁面。

這可能嗎?任何反饋/鏈接將不勝感激。

也不會有任何第三方使用我們的wcf服務,這是全部內部。

+0

難道你不只是做一個標準的形式發佈到結果頁面,並在那裏構建你的搜索對象?如果你必須記住搜索,那麼可能最好堅持與會議。 – stephenl 2011-05-10 16:36:51

回答

2

有三種方式可以做到這一點

  • 強似數據後使用簡單的GET搜索頁面的。搜索條件將通過URL傳遞,例如google。
  • Cross page post back - 自.NET 2.0起可用的功能。它將刪除會話並重定向。您也可以使用Server.Transfer/Server.Execute
  • AJAX回調。您的搜索不會發布表單,而是直接致電該服務以獲取結果。你可以使用ASP.NET script manager以及其他東西,或者使用一些輕量級的javascript框架,比如jQuery。您的WCF服務必須使用JSON編碼公開webHttpEndpoint。