2011-04-05 76 views
4

我需要一些關於此問題的幫助。它關於ASP.NET MVC3。我有一個頁面,頂部有一些搜索條件,底部是結果數據。用戶可以鍵入一些標準並使用提交按鈕來重新獲取數據。在我的控制器中,我有一個ActionResult函數來管理這些條件,並返回到填充了ViewModel類的同一頁面。返回到搜索頁面而不丟失搜索條件

問題:用戶可以點擊結果表中的一行查看詳細信息頁面。在詳細信息頁面上,他可以導航到編輯頁面以編輯數據。在這個頁面上(編輯數據)我想讓用戶返回到搜索結果頁面(實際上:向後導航兩次)。最好的方法是什麼?如果我「簡單地」使用ActionLink(沒有發佈數據)到我的搜索結果頁面,它將只顯示空搜索條件的空結果頁面。也許我需要將我的搜索條件保留在會話變量中?我不喜歡這種東西...

任何幫助將不勝感激。

回答

2

爲什麼不把數據放在Session,正如你所說的那樣?

public ActionResult Search(string searchCriteria) 
{ 
    Session["searchCriteria"] = searchCriteria; 
    // do more stuff  
} 

這樣無論用戶做了多少次「返回點擊」,您都可以使用搜索條件。

你可以讓它更復雜,但我不認爲這是必要的。如果您想將其作爲路由數據傳遞給操作鏈接,您必須防禦性地將searchCriteria參數添加到用戶可能從「搜索」頁面導航到的頁面的每個ActionLink中。這使我覺得它更加麻煩。

夠好夠有時候夠用了。根據需要稍後重構。 :)

+0

嗨Sergi,謝謝你的時間。我使用了一個會話變量。有用。在我的詳細信息頁面上,我使用了一個操作鏈接返回到我的搜索結果。我問這個問題是因爲我是ASP.NET MVC的初學者,有時我擔心會犯錯誤。無論如何謝謝你,祝你有美好的一天。 – Bronzato 2011-04-05 10:59:08

+0

@Bronzato - 不客氣。歡迎來到StackOverflow。如果它幫助你,不要忘記標記這個答案是正確的。您可以通過點擊答案左邊的白色勾號來做到這一點。 – 2011-04-05 11:12:25

+3

如果用戶希望能夠在不同的選項卡中打開兩個不同的搜索結果,則使用會話將無法乾淨地工作。 – rossisdead 2013-04-08 15:39:50