我有一个控制器操作,它使用 PredicateBuilder 构建动态 linq 查询。我想将此查询的结果传递给部分视图。做这个的最好方式是什么?如果始终使用强类型视图是最佳实践,我传递给控制器操作的视图模型是否应该有一个可以将查询结果传递到的列表?或者这只是使用两个列表的额外开销?
这是控制器操作的简化版本:
[HttpPost]
public ActionResult BasicPropertySearch(BasicPropertySearchViewModel viewModel)
{
var predicate = PredicateBuilder.True<ResidentialProperty>();
if (ModelState.IsValid)
{
using(var db = new LetLordContext())
{
predicate = predicate.And(x => x.HasBackGarden);
predicate = predicate.And(x => x.HasFrontGarden);
predicate = predicate.And(x => x.HasSecureParking);
predicate = predicate.And(x => x.IsDisabledFriendly);
var results = db.ResidentialProperty.AsExpandable().Where(
predicate).ToList();
return PartialView("_BasicPropertySearchResultsPartial", results);
}
}
ModelState.AddModelError("", "Something went wrong...");
return View("_BasicPropertySearchPartial");
}
results
如果传递给列表的视图不是强类型的,我如何在视图中访问?