2013-09-22 1 views
0

Я хочу использовать PageList.использование PagedList как ViewModel

перед:

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 Project.Models.AllClasses.MyClass.Feachers 
    ... 
    // I have some drop-downlists and textbox in view. And fill my model by them (name ,day, month,…) 

Теперь я хочу изменить свой код. Я использовал

@model PagedList.IPagedList< Project.Models.AllClasses.MyClass.Feachers> 

на мой взгляд, вместо @model Project.Models.AllClasses.MyClass.Feachers.

но я потерял свои свойства (имя, день, ...). Мне нужна конкретная работа?

ответ

2

Что вам нужно, это вид модели:

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 быть PagedList. Теперь все, что осталось, приспосабливает действие contorller для заполнения и передачи модели представления в представление вместо вашей модели домена (что является наилучшей практикой в ​​любом случае).

+0

, но таким образом PageNumber и PageSize являются peroperties, которые предназначены для игроков (Model.Players.PageNumber). он не должен претендовать на полную модель? в моей треске, которую я имею в виду для Учителей? – paryazan

+0

Если они являются свойствами для Игроков, то напишите PlayerViewModel, включите их в эту модель представления, а затем создайте 'PagedList '. –

+0

нет, они не для игроков. при объявлении PagedList они создаются автоматически. не так ли? – paryazan