2016-07-08 6 views
12

が参照されていないアセンブリで定義されている私はX.PagedList.Mvcを型「のIEnumerableを<>」

私のMVC 5アプリケーションに次nugetパッケージを追加している私は私のコントローラ/ビューに結果を返します次の:

// Repo 
public IPagedList<Post> GetPagedPosts(int pageNumber, int pageSize) 
{ 
    var posts = _context.Post 
     .Include(x => x.Category) 
     .Include(x => x.Type); 

    // Return a paged list 
    return posts.ToPagedList(pageNumber, pageSize); 

} 

// View model 
public class PostViewModel 
{ 
    public IPagedList<Post> Posts { get; set; } 
    ... 
} 

// Controller method 
public ActionResult Index(int? page) 
{ 

    int pageNumber = page ?? 1; 
    int pagesize = 5; 

    var posts = _PostRepository.GetPagedPosts(pageNumber, pagesize); 

    var viewModel = new PostViewModel 
    { 
     Posts = posts, 
     ... 
    }; 

    return View(viewModel); 
} 

// View 
@model MyApp.ViewModels.PostViewModel 
@using X.PagedList.Mvc; 
@using X.PagedList; 

<p>Page @(Model.Posts.PageCount < Model.Posts.PageNumber ? 0 : Model.Posts.PageNumber) of @Model.Posts.PageCount </p> 

しかし

が私の見解で、私は、私は自分のアプリケーションで何project.jsonファイルを持っていない、次のエラー The type 'IEnumerable<>' is defined in an assembly that is not referenced. System.Runtime...

を取得していますので、このエラーは何ですか?

+0

あなたはステートメントを使用して表示してもらえますか? – Win

+0

'System.Runtime'への参照がないことを確認してください。それは物事をねじにすることができます –

+0

あなたは 'Microsoft BCLポータビリティパック'などのPCLを参照していますか?すべてのアセンブリバージョンが同じであることを確認し、 '.suo'を削除し、clean/buildを実行してください。 –

答えて

12

あなたのWeb.configファイルに次の行があることを確認してください:

<compilation debug="true" targetFramework="4.6.1"> //don't need to change THIS line, just the content of this section 
    <assemblies> 
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    <add assembly="System.Collections, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </assemblies> 
</compilation> 
+4

今後参照するには、Visual Studioを閉じてVisual Studioを再起動する必要がありました。エラーは、私が閉じて再開するまで、この答えに従った後でさえも消えませんでした。 – Rinktacular

+0

'XPagedList'は、cshtmlファイルのModelについての警告を取り除くために、これらの行が必要なようです。また、すべてのプロジェクトでbinとobjフォルダを削除し、Visual Studio 2017を閉じて、ソリューションを再度開きました。今ビルドはエラーなしで動作しています。 –

関連する問題