无法将模型转换为ViewModel

时间:2015-06-14 19:37:39

标签: c# asp.net-mvc asp.net-mvc-4

我有这个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]”。

0 个答案:

没有答案