如何将 AutoMapper 与 PagedList 一起使用?

How to use AutoMapper with PagedList?

我想使用 AutoMapper 将我的 ViewModel 映射到域模型 class。我也在使用 PagedList NuGet 包。我是这样使用它的:

[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));
}

不幸的是我得到了错误:

Missing type map configuration or unsupported mapping. Mapping types: ErrorsLog -> ErrorsLogViewModel DigitalHubOnlineStore.Models.ErrorsLog -> DigitalHubOnlineStore.ViewModels.ErrorsLogViewModel Destination path: ErrorsLogViewModel Source value: PagedList.PagedList`1[DigitalHubOnlineStore.Models.ErrorsLog]

我该如何解决?

你有没有注册你的映射? 根据错误消息,您似乎还没有在任何地方调用 CreateMap 方法。
看看this.

编辑

如前所述here,您可以为您的映射创建静态class...

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

然后在您的 Global.asax:

中调用它
AutoMapperConfig.Configure();