我有一個搜索頁面,您可以根據名稱,電話號碼,帳號或客戶號碼搜索客戶。然後,我查看7個不同的數據庫,嘗試在這些事情上進行匹配以取得結果。因此,我寧願只運行一次搜索,記住我可以在頁面中顯示的結果。以下是我用於SearchResults頁面的ViewModel。MVC3在更換頁面時保存搜索結果
public class SearchResultsViewModel
{
public IEnumerable<CustomerSearchResults> SearchResults { get; set; }
public PagingInfo PagingInfo { get; set; }
}
public class PagingInfo
{
public int TotalItems { get; set; }
public int ItemsPerPage { get; set; }
public int CurrentPage { get; set; }
public int TotalPages {
get { return (int)Math.Ceiling((decimal)TotalItems/ItemsPerPage); }
}
}
下面是SearchResult所頁
public ActionResult SearchResults(int page = 1)
{
SearchResultsViewModel srvm = new SearchResultsViewModel
{
SearchResults = res.Skip((page - 1) * pageSize).Take(pageSize),
PagingInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = pageSize, TotalItems = res.Count() }
};
ViewBag.CurrentPage = page;
return View("SearchResults", srvm);
}
[HttpPost]
public ActionResult Index(IndexViewModel vm)
{
res = GetSearchResults(vm);
return SearchResults();
}
RES的控制器編碼是在控制器中的全局變量。我在想也許我可以保存這些數據,以便在不同的頁面上顯示,但很快就發現我每次拉起視圖時都會得到一個新的控制器,所以這是行不通的。
查看代碼只是在表格中顯示搜索結果,並在底部顯示頁面編號鏈接的HTML助手。頁碼鏈接是使用正確的頁碼調用SearchResults操作的錨。
我可以保存數據以使用表單頁面或者這是不可能的嗎?有沒有更好的方法來做到這一點?
該解決方案效果很好。當談到web programmign時,我是一個相對的新手,所以我仍然學習所有可用的機制。謝謝您的幫助。 – 2012-02-28 17:13:51