Asp.net 使用PagedList作为ViewModel

Asp.net 使用PagedList作为ViewModel,asp.net,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-2,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc 2,我想用页面列表 之前: MyClass: public class Feachers { public List<Project.Models.view_Student> Players { get; set; } public string name { get; set; } public int day { get; set; } public int month { get; set; } publ

我想用页面列表

之前:

MyClass:

 public class Feachers
    {
  public List<Project.Models.view_Student> Players { get; set; }
        public string name { get; set; }
        public int day { get; set; }
        public int month { get; set; }
        public int year { get; set; }
     }

    }
现在我想更改代码。我曾经

 @model PagedList.IPagedList< Project.Models.AllClasses.MyClass.Feachers> 
@model PagedList.IPagedList
在我的视图中,改为@model Project.Models.AllClasses.MyClass.Feachers

但我失去了我的财产(姓名、日期等)。
我应该做特定的工作吗?

您需要的是一个视图模型:

public class FeachersViewModel
{
    public IPagedList<Project.Models.view_Student> Players { get; set; }
    public string name { get; set; }
    public int day { get; set; }
    public int month { get; set; }
    public int year { get; set; }
}
@model FeachersViewModel

现在在视图中,您可以使用
@Model.Players
属性,它将是一个页面列表。现在剩下的就是调整您的控件操作,以填充视图模型并将其传递给视图,而不是域模型(这是最佳实践)。

但这样一来,PageNumber和PageSize是供玩家使用的属性(model.Players.PageNumber)。它不应该属于完整的模型吗?在我的cod中,我指的是Feachers?如果它们是玩家的属性,那么就写一个PlayerViewModel,将它们包含到这个视图模型中,然后制作一个
页面列表
。不,它们不适合玩家。声明页面列表时,它们会自动生成。是吗?以我的方式,我只有PageSize、PageNumber、TotalItemCount……而没有我的属性(名称、日期……)根据需要传递到视图的内容来设计和使用视图模型。这就是视图模型的用途。无论视图需要什么信息,都应该将其包含在视图模型中。
@model FeachersViewModel