2011-03-27 113 views
4

我有一個搜索操作需要搜索參數。我在一個結果中搜索結果,並且我想重定向到一個顯示操作,並且如果有多個結果,我想直接顯示列表操作並列出所有結果。ASP.NET MVC「搜索」應重定向到結果或結果

我得到了重定向工作,但不是很好。我不確定如何執行搜索結果的傳輸。如果第一個「搜索」動作只提取id,然後取決於顯示或列表動作來提取基於id的更多數據?他們的身份證應該如何轉化爲具體行動?

+0

剛剛更新了一點。搜索操作也將是具有相應搜索視圖以顯示多個結果的操作。意味着一個搜索結果應該直接指向一個新的演出動作/視圖 – 2011-03-27 20:28:05

回答

2

如果存在多個結果,我可能會使搜索操作在搜索結果中顯示一個視圖結果。如果合適的話,它可以重用列表視圖,但僅顯示它們會更容易,而不是嘗試重定向到具有多個ID的另一個操作。在單個結果的情況下,重定向到該項目的詳細信息操作可能是適當的。這意味着我需要在搜索過程中檢索足夠的數據,以便爲列表填充模型。如果重定向到細節操作,您只需通過id重定向,並讓細節操作獲取其顯示所需的任何信息。

public ViewResult Search(string query) 
{ 
     ... get results .. 

     if (results.Count() == 1) 
     { 
      return RedirectToAction("details", new { id = results.First().ID }); 
     } 
     return View("list", this.CreateListViewModel(results)); 
} 

其中CreateListViewModel接收一組搜索結果併爲List視圖生成視圖模型對象。

+0

就像我要去的路一樣 – 2011-03-28 20:14:28

0

另一種可能性是創建兩個視圖,一個用於單個結果,另一個用於列表結果,並調用return View("Single", model)View("List, collection)