2016-07-08 15 views
12

Tôi đã thêm gói NuGet sau để tôi MVC 5 ứng dụng X.PagedList.MvcLoại 'IEnumerable <>' được định nghĩa trong một hội đồng đó không được tham chiếu

tôi trả lại kết quả trong điều khiển của tôi/xem như sau:

// 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> 

Nhưng theo quan điểm của tôi, tôi đang nhận được lỗi sau The type 'IEnumerable<>' is defined in an assembly that is not referenced. System.Runtime...

tôi không có tập tin project.json trong ứng dụng của tôi vì vậy lỗi này là gì?

+0

bạn có thể chỉ cho sử dụng báo cáo? – Win

+0

Đảm bảo bạn không có tham chiếu đến 'System.Runtime'. Điều đó có thể khiến mọi thứ trở nên khó khăn –

+0

Bạn có tham chiếu và PCL chẳng hạn như 'Gói Khả năng di động Microsoft BCL' không? Đảm bảo tất cả các phiên bản lắp ráp của bạn đều giống nhau, xóa '.suo' của bạn và làm sạch/xây dựng. –

Trả lời

12

Đảm bảo bạn có các dòng sau trong file Web.config của bạn:

<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

Để tham khảo trong tương lai, tôi đã phải đóng Visual Studio của tôi và sau đó mở lại Visual Studio. Các lỗi đã không biến mất, ngay cả sau khi làm theo câu trả lời này, cho đến khi tôi đóng cửa và mở cửa trở lại. – Rinktacular

+0

Có vẻ như 'XPagedList' cần những dòng này để loại bỏ các cảnh báo về Mô hình trong các tệp cshtml. Tôi cũng đã xóa các thư mục bin và obj trong tất cả các dự án, đóng Visual Studio 2017 và mở lại giải pháp. Bây giờ xây dựng đang làm việc không có lỗi. –

Các vấn đề liên quan