我是Asp.net的新手,我的观点中有一个错误 我使用Pagedlist和ViewModel
在我的项目中实现了存储库模式using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HoboAnimal.Domain.Entities
{
public class Profile
{
public int ProfileID { get; set; }
public string Color { get; set; }
public string Image { get; set; }
public string PlaceHolder { get; set; }
public DateTime? DateOfPubl { get; set; }
public string CurrentCategory { get; set; }
}
}
我的ViewModel类和控制器:
using System.Collections.Generic;
using HoboAnimal.Domain.Entities;
using PagedList.Mvc;
using PagedList;
namespace HoboAnimal.WebUI.Models
{
public class ProfilesListViewModel
{
public PagedList.IPagedList<Profile> Profiles {get; set;}
}
}
观点:
@model PagedList.IPagedList<HoboAnimal.WebUI.Models.ProfilesListViewModel>
@using PagedList.Mvc;
@using HoboAnimal.WebUI.Models
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
@{
ViewBag.Title = "Profiles";
}
@foreach (var p in Model.Profiles)
{
<h2>@p.Image</h2>
<h3>@p.DateOfPubl</h3>
<h2>@p.CurrentCategory</h2>
}
Страница @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) из @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index", new { page }))
我在这条道路上有错误:
@foreach (var p in Model.Profiles)
PagedList.IPagedList” 不包含“个人资料”的定义,也没有扩展方法 '个人资料'接受第一个类型的参数 'PagedList.IPagedList' 可以找到(你错过了使用指令或程序集 引用?)
我不知道如何修复它,我试图在我的模型中添加@using指令,但它没有帮助 谢谢你
答案 0 :(得分:1)
PagedList应该在类似的地方实现。无需为PagedList创建视图模型。
<强>控制器强>
using PagedList;
public ViewResult Index(int? page)
{
var profiles = db.Profiles.ToList();
int pageSize = 3;
int pageNumber = (page ?? 1);
return View(profiles.ToPagedList(pageNumber, pageSize));
}
查看强>
@model PagedList.IPagedList<HoboAnimal.WebUI.Models.ProfilesListViewModel>
@using PagedList.Mvc;
@using HoboAnimal.WebUI.Models
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
@{
ViewBag.Title = "Profiles";
}
@foreach (var p in Model)
{
<h2>@p.Image</h2>
<h3>@p.DateOfPubl</h3>
<h2>@p.CurrentCategory</h2>
}
<br />
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index",
new { page }))