我有一個使用PredicateBuilder構建動態linq查詢的控制器操作。我想將此查詢的結果傳遞給部分視圖。做這個的最好方式是什麼?如果最好的做法是始終使用強類型視圖,那麼我傳遞給控制器動作的視圖模型是否應該有一個可以將查詢結果傳遞給的列表?或者這僅僅是使用兩個列表的額外開銷?如何在MVC 4的部分視圖中訪問動態linq查詢(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
如果視圖傳遞的列表不是強類型?