2016-07-15 31 views
1

私はAsp.netで新しく、私のビューには1つのエラーがあります 私はリポジトリのパターンをPagedList.IPaged <ProjectName.WebUI.Model>にプロファイルの定義が含まれていません(指示または参照がありません)

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 })) 
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クラスとコントローラとの私のプロジェクト

私はこのレーンでエラーがあります。

@foreach (var p in Model.Profiles) 

PagedList.IPagedListプロファイル 『と拡張子なしの方法 『プロファイル』は、タイプ の最初の引数を受け入れる「」 は、の定義が含まれていません』をPagedList.IPagedList」 を見つけることができる(あなたがusingディレクティブまたはアセンブリ参照 不足している?)

私はそれを修正する方法が分からない、私は@usingを追加しようとしました私のモデルではディレクティブが役に立ちません。 ありがとうございます。

+0

あなたのモデルはProfilesListViewModel''のコレクションですあなたは本当に 'IPagedList 'か '@model ProfilesListViewModel'ですか? –

+0

これはIPagedList でなければなりません私はページ設定を使用したいです –

+0

'ProfilesListViewModel'の' Profiles'プロパティは 'IPagedList 'です。ページングされた別のリストのページングリストを持つことは意味をなさない。あなたのモデルは '@model ProfilesListViewModel'、' @foreach(Model.Profilesのvar p){...} '、最後に' @Html.PagedListPager(Model.Profiles、page .... ')でなければなりません。 –

答えて

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 })) 
それは `@foreach(モデル内のvarメートル){foreachの(する必要がありますので、
関連する問題