如何将AutoMapper与PagedList一起使用?

时间:2015-06-13 14:28:42

标签: c# asp.net-mvc automapper pagedlist

我想使用AutoMapper将ViewModel映射到域模型类。我也在使用PagedList NuGet Package。我这样用它:

[Authorize]
[AutoMap(typeof(ErrorsLog), typeof(ErrorsLogViewModel))]
public ActionResult Errors(string searchString, string currentFilter, int? page)
{
    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    var el = _er.GetErrorsLog();
    ViewBag.CurrentFilter = searchString;

    if (!String.IsNullOrEmpty(searchString))
    {
        el = el.Where(s => s.ErrorSource.Contains(searchString));
    }

    const int pageSize = 3;
    int pageNumber = (page ?? 1);
    return View("Errors", el.ToPagedList(pageNumber, pageSize));
}

不幸的是我收到了错误:

  

缺少类型映射配置或不支持的映射。映射类型:ErrorsLog - > ErrorsLogViewModel DigitalHubOnlineStore.Models.ErrorsLog - > DigitalHubOnlineStore.ViewModels.ErrorsLogViewModel目标路径:ErrorsLogViewModel源值:PagedList.PagedList`1 [DigitalHubOnlineStore.Models.ErrorsLog]

我该如何解决?

1 个答案:

答案 0 :(得分:4)

您是否注册了映射? 通过错误消息,您似乎还没有在任何地方调用CreateMap方法 看看this

修改

如上所述here,您可以为映射创建一个静态类...

public static class AutoMapperConfig
{
   public static void Configure()
   {    
      Mapper.CreateMap<ErrorsLog, ErrorsLogViewModel>();
   }
}

并在Global.asax中调用它:

AutoMapperConfig.Configure();