我們正在編寫一個搜索應用程序,它將搜索條件保存到會話狀態並在asp.net更新面板中執行搜索。有時當我們連續執行多次搜索時,第二次或第三次搜索有時會返回第一組搜索條件的結果。例如:我們的第一個搜索我們查看「John Smith」 - > John Smith的結果。第二次搜索我們查看「Bob Jones」 - > John Smith結果。ASP.NET Ajax - Asynch請求具有單獨的會話?
正如我所說的,我們將所有搜索條件保存在會話狀態中,並從ajax請求中的會話狀態中讀取它以格式化數據庫查詢。當我們在VS中放置斷點時,所有行爲都是正常的,但沒有它們,我們會得到原始的搜索條件和結果。
我的猜測是因爲他們被保存在會話中,ajax請求以某種方式獲取自己的會話並將標準保存到該會話中,然後每次從該會話中檢索條件,但非異步的東西能夠看看標準何時被修改,並將更改保存爲相應狀態,但由於它們來自兩個不同的會話,因此保存和讀取的內容存在差異。
編輯::: 爲了詳細說明,有人建議將查詢條件附加到查詢字符串,這通常是很好的做法,我同意它應該如何,但遵循我們的要求,我不認爲它是可行。他們希望用戶填寫輸入控件命中搜索,並且沒有頁面重新加載,他們唯一看到的是頁面上的進度指示器,他們仍然能夠導航並使用當前頁面上的其他功能。如果我將條件添加到查詢字符串,我將不得不做另一個請求,導致整個頁面加載,這取決於搜索條件可能需要很長時間。這就是爲什麼我們使用ajax調用來執行搜索以及爲什麼我們不會導致另一個完整頁面請求.....我希望這可以澄清情況。
得出這不是一個web服務。 – 2008-09-24 15:35:22
工作就像一個魅力!在VB.NET中: –
wayofthefuture
2013-12-28 17:13:36