我有这个ActionMethod:
public virtual ActionResult Search(AdvancedSearchViewModel SearchVM)
{
var Things = _things.SelectAll(ThingType.thing);
if (SearchVM.AllProvince != true)
Things = Things.Where(pid => pid.City.ProvinceId == SearchVM.drpProvince && pid.City.Id==SearchVM.City ).ToList();
if (SearchVM.AllGroup != true)
Things = Things.Where(gid => gid.SubGroup.MainGroupId == SearchVM.drpGroupId && gid.SubGroup.Id == SearchVM.SubGroup).ToList();
if (!SearchVM.TitleIsContains)
Things = Things.Where(title=>title.Title==SearchVM.Title).ToList();
else
Things = Things.Where(title => title.Title.Contains( SearchVM.Title)).ToList();
if (SearchVM.Body.Length > 0)
Things = Things.Where(model=>model.Description==SearchVM.Body).ToList();
var ThingList = Things.Select(x => new LastThingViewModel { HasReward = x.IsReward, Id = x.Id, Reward = x.Reward, Title = x.Title, RequestCount = x.Requests.Count });
return View(MVC.Index.Views.ViewNames.SearchResult, ThingList);
}
SearchResult View是:
@model IEnumerable<ViewModel.Thing.ThingListViewModel>
@{
ViewBag.Title = "SearchResult";
Layout = "~/Views/Shared/Layouts/_Sub.cshtml";
}
<h2>SearchResult</h2>
@{Html.RenderPartial(MVC.Shared.Views.ViewNames._ThingList, Model);}
和ThingList Partial Is:
@model IEnumerable<ViewModel.Thing.ThingListViewModel>
....
....
但是当我调用搜索操作时,我收到此错误:
传递到字典中的模型项的类型为'System.Linq.Enumerable + WhereSelectListIterator`2 [DomainModel.Entities.Thing,ViewModel.Thing.LastThingViewModel]',但此字典需要类型为'System的模型项。 Collections.Generic.IEnumerable`1 [ViewModel.Thing.ThingListViewModel]”。