我是如何做到这一点的,就像您在上一段中提到的那样:
将这些元素和控制器发送到控制器只是为了过滤它们并将过滤后的集合返回给视图
您可以使用 linq 来执行此操作。所以让我们说一下你发送给它的一个列表。因此,当您执行过滤器时 - 比如说按类别 - 您期望按类别过滤列表(比如说 Category = “Book”)。
因此,在您的控制器中,您的 List() 操作(或您所称的任何操作)应该准备好接受过滤器参数。然后基于该参数使用 LINQ 缩小要传递给视图的集合。像这样:
public ActionResult List(bool fromCache, string filter)
{
// if filtering - always pull from cache to increase performance
ProductList productList;
if (fromCache)
productList = Session[SessionKeys.ProductList] as ProductList;
else
{
productList = ProductInfoList.GetProductInfoList();
Session[SessionKeys.ProductInfoList] = productList;
}
// apply filter
var data = productList.Where(p => p.Category == filter);
return View(ViewLocations.ProductListing, data);
}
代码可能在语法上不正确,但你去 - 祝你好运。