C# Asp.net Core如何将ReflectionIT与ViewModel一起使用?
我想在Asp.net Core 2.2中对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; }
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.List1[KhaoThiKiemDinh.ViewModels.KiemDinhLoginViewModel]”,但此ViewDataDictionary实例需要类型为“ReflectionIT.Mvc.Paging.PagingList
1[KhaoThiKiemDinh.ViewModels.KiemDinhLoginViewModel]”的模型项
请帮帮我。谢谢。请参阅我的评论。您的索引视图似乎还需要接受
@model List
,才能与操作传递的数据相对应。