我想就此問題提供一些建議。基本上,我有2頁(爲了簡單起見),第二頁完全依賴於第一頁。在頁面之間傳遞和存儲對象
因此,可以說主要就是頁面一搜索頁,第二頁是視圖頁。
該網站關閉了XML請求,最終目標是儘可能減少XML請求,因爲每個請求都有點慢。我考慮過使用會話,但過去我遇到了一些問題,隨機會話之間的會話混雜在一起,我只能通過將IIS中的回收過程更改爲非常短的時間框架來進行限制,所以我想知道是否存在任何其他方式。我已經嘗試了TempData,但是在一個請求後過期,所以在視圖頁面上刷新頁面似乎不可能。 (或是否?)
無論如何,我們的搜索頁面具有View屬性所需的5個屬性,但在視圖頁面上只需要2個屬性即可。
例如
搜索頁面包含:
- ID,
- 名稱,
- 市
- 電子郵件,
- 身高
查看頁面,需要從以下搜索頁面來完成XML請求:
- ID,
- 名稱,
- 電子郵件
查看頁面顯示從搜索頁面中的所有信息,再加上一切都在XML響應。
我在搜索頁面中的鏈接只有url中的ID,因此第二頁上的XML請求需要名稱和電子郵件地址。不知道沒有會話是否可能?
我已經試過是:
存放在TempData的搜索結果。這樣,當有人點擊「查看」鏈接(<a href="/view/123456">View</a>
),查看頁面加載像這樣的搜索結果:
var viewPage = SearchResults.Where(w => w.ID == id).FirstOrDefault();
然後視圖模型通過抓住從viewPage
的Name
和Email
,使一個XML呈現頁面請求和顯示響應,以及viewPage
中的其他所需詳細信息。
它按照預期與tempdata一起工作。數據只保留在第一個請求上,在頁面刷新時死亡。會議是另一種選擇,但還有其他嗎?
@using (Html.BeginForm("search", "somecontroller", FormMethod.Get))
{
... some input fields for your search criteria
<button type="submit">Search</button>
}
及:爲什麼不使用更標準的技術,例如在搜索頁面指向控制器動作<form>
標籤將執行搜索
(抱歉文字:)
剛剛看過你的問題,我想起了一個我曾經參與過的項目。我通過使用非對稱加密算法對值(電子郵件,名稱等)進行加密並將其作爲QueryString值來解決問題。另外,請記住'TempData'也使用會話。 – tugberk 2012-04-04 07:46:43