我已經閱讀了許多有關此問題的教程,我找不到類似於我的情況。對另一個視圖發佈的結果進行排序
我有一個索引視圖,裏面有一個搜索表單來過濾我的數據庫中可用的結果。
這裏的簡化版本我爲我的索引視圖控制器動作:
[HttpPost]
public ActionResult Index(String carMake, String carModel)
{
var cars = from d in db.Cars
select d;
if (!String.IsNullOrEmpty(carMake))
{
if (!carMake.Equals("All Makes"))
{
cars = cars.Where(x => x.Make == carMake);
}
}
if (!String.IsNullOrEmpty(carModel))
{
if (!carModel.Equals("All Models"))
{
cars = cars.Where(x => x.Model == carModel);
}
}
cars = cars.OrderBy(x => x.Make);
return View("SearchResult", cars);
}
,你可以看到,我從索引視圖獲取數據,並將其張貼到我的信息搜索結果直接觀看,無需使用任何public ActionResult SearchResult(){...}
的。但我在我的控制器中有public ActionResult SearchResult(){...}
方法。
現在,我正在嘗試對結果進行排序。我怎樣才能做到這一點?
我已經嘗試了許多不同的方法將數據從我的索引方法傳遞給搜索結果方法,如TempData等。但與他們的問題是,當我點擊排序按鈕頁面重新加載和我從我的索引視圖形式採取的查詢將全部爲空,因爲TempData僅用於在方法之間傳遞數據和方法被召回時,數據將消失,全部爲空。
我在腦海中有一些解決方案,但我不確定他們是否能解決問題,以及他們是否可以提出最佳/最簡單的解決方案。將我從索引頁獲得的查詢記錄到一張表中(我認爲這不是一個明智的做法)。
謝謝你的完整和易於理解的答覆:)。不過,我在我的控制器中試過了你的解決方案它確實會傳遞這些值,但是當我嘗試對結果進行排序時(這些結果是由用戶從Index視圖頁給出的值進行篩選的)所有已傳遞的值都將爲空。 我無法嘗試從表格中發送變量,因爲我不知道如何去做。但我會研究它並找出答案。 – moamzia