我已经阅读了很多关于此的问题和教程,但我找不到与我类似的案例。
我有一个索引视图,其中有一个搜索表单来过滤我的数据库中可用的结果。
这是我的索引视图的控制器操作的简化版本:
[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);
}
如您所见,我从 Index 视图中获取数据并将其直接发布到我的 SearchResult 视图中,而无需使用任何public ActionResult SearchResult(){...}
. 但我public ActionResult SearchResult(){...}
的控制器中确实有方法。
现在,我正在尝试对结果进行排序。我怎样才能做到这一点?
我尝试了许多不同的方法将数据从我的 Index 方法传递到 Search Result 方法,例如 TempData 等。但是它们的问题是,当我单击排序按钮时,页面会重新加载,并且我从索引视图表单中获取的查询将全部为空,因为 TempData 仅用于在方法之间传递数据,并且在调用该方法时,数据将消失,全部为空。
我有一些解决方案,但我不确定它们是否会奏效,以及它们是否是可能提出的最佳/最简单的解决方案。它将我从索引页面获得的查询记录到一个表中(我认为这样做不是明智之举)。