C# Asp.net Core如何将ReflectionIT与ViewModel一起使用?

C# Asp.net Core如何将ReflectionIT与ViewModel一起使用?,c#,asp.net-mvc,asp.net-core-mvc,C#,Asp.net Mvc,Asp.net Core Mvc,我想在Asp.net Core 2.2中对ViewModel使用分页 你可以在下面看到我的代码 public class KiemDinhLoginViewModel { public string MaTruong { get; set; } public string MatKhau { get; set; } public string TenDonVi { get; set; } public string Quan { get; set; }

我想在Asp.net Core 2.2中对ViewModel使用分页

你可以在下面看到我的代码

 public class KiemDinhLoginViewModel
{
    public string MaTruong { get; set; }
    public string MatKhau { get; set; }
    public string TenDonVi { get; set; }
    public string Quan { get; set; }
    public string DiaChi { get; set; }
    public int MaCapHe { get; set; }
    public bool? Active { get; set; }
    public string Quyen { get; set; }

    public string TenCapHe { get; set; }
}
在我的控制器里

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AutoMapper;
using KhaoThiKiemDinh.Models;
using KhaoThiKiemDinh.ViewModels;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using PagedList.Core;
using ReflectionIT.Mvc.Paging;

namespace KhaoThiKiemDinh.Areas.Admin.Controllers
{
    [Area("admin")]
    public class DanhSachDangNhapController : Controller
    {
        private readonly ngoaingusgd_com_Context _context;
        private readonly IMapper _mapper;
        public DanhSachDangNhapController(ngoaingusgd_com_Context context, IMapper mapper)
        {
            _context = context;
            _mapper = mapper;
        }
        public async Task<IActionResult> Index(int page = 1)
        {
            var KiemDinhLogin = _context.KiemDinhLogin.AsQueryable();
            var result = KiemDinhLogin.Include(p => p.MaCapHeNavigation).OrderBy(p => p.Quan);
            var model = await PagingList.CreateAsync(result, 5, page);
            return View(_mapper.Map<List<KiemDinhLoginViewModel>>(model));
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Threading.Tasks;
使用自动制版机;
使用KhaoThiKiemDinh.模型;
使用KhaoThiKiemDinh.ViewModels;
使用Microsoft.AspNetCore.Mvc;
使用Microsoft.EntityFrameworkCore;
使用PagedList.Core;
使用ReflectionIT.Mvc.Paging;
命名空间KhaoThiKiemDinh.Areas.Admin.Controllers
{
[区域(“管理”)]
公共类DANHSACHDANGHAPC控制器:控制器
{
私有只读ngoaingusgd_com_Context_Context;
专用只读IMapper\u映射器;
公共DanhSachDangNhapController(ngoaingusgd_com_上下文,IMapper映射器)
{
_上下文=上下文;
_映射器=映射器;
}
公共异步任务索引(int page=1)
{
var KiemDinhLogin=_context.KiemDinhLogin.AsQueryable();
var result=KiemDinhLogin.Include(p=>p.macapenavigation).OrderBy(p=>p.Quan);
var model=await PagingList.CreateAsync(结果,第5页);
返回视图(_mapper.Map(model));
}
}
}
下面是MappingProfile

namespace KhaoThiKiemDinh.Models
{
    public class MappingProfile : Profile
    {
        public MappingProfile()
        {
            CreateMap<KiemDinhLogin, KiemDinhLoginViewModel>().
                ForMember(dest => dest.TenCapHe, opt => opt.MapFrom(src => src.MaCapHeNavigation.TenCapHe));
        }
    }
}
名称空间KhaoThiKiemDinh.Models
{
公共类映射配置文件:配置文件
{
公共映射配置文件()
{
CreateMap()。
FormMember(dest=>dest.TenCapHe,opt=>opt.MapFrom(src=>src.macapennavigation.TenCapHe));
}
}
}
在Index.cshtml的末尾

@model ReflectionIT.Mvc.Paging.PagingList<KhaoThiKiemDinh.ViewModels.KiemDinhLoginViewModel>
@using ReflectionIT.Mvc.Paging
@addTagHelper *, ReflectionIT.Mvc.Paging

    @await this.Component.InvokeAsync("Pager", new { paginglist = this.Model })

   <table>...</table>


    <vc:pager paging-list="@Model"></vc:pager>
@model ReflectionIT.Mvc.Paging.PagingList
@使用ReflectionIT.Mvc.Paging
@addTagHelper*,ReflectionIT.Mvc.Paging
@等待this.Component.InvokeAsync(“Pager”,new{paginglist=this.Model})
...
但我得到了下面的错误

处理请求时发生未处理的异常。 InvalidOperationException:传递到ViewDataDictionary的模型项的类型为“System.Collections.Generic.List
1[KhaoThiKiemDinh.ViewModels.KiemDinhLoginViewModel]”,但此ViewDataDictionary实例需要类型为“ReflectionIT.Mvc.Paging.PagingList
1[KhaoThiKiemDinh.ViewModels.KiemDinhLoginViewModel]”的模型项


请帮帮我。谢谢。

请参阅我的评论。您的索引视图似乎还需要接受
@model List
,才能与操作传递的数据相对应。