2016-07-08 7 views
12

başvuruda bulunulan bir düzenekte tanımlandığı gibidir aşağıdaki gibidir: türü 'IEnumerable <>' ı de her kumanda/görünümünde sonuç benim MVC 5 uygulama <p>X.PagedList.Mvc</p> aşağıdaki Nuget paketi ekledik

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

Ama

bence benim uygulamada hiçbir project.json dosyası var aşağıdaki hatayı The type 'IEnumerable<>' is defined in an assembly that is not referenced. System.Runtime...

alıyorum bu nedenle bu hata nedir?

+0

Eğer ifadelerini kullanarak gösterebilir misin? – Win

+0

"System.Runtime" öğesine bir referansınız olmadığından emin olun. Bu işleri vidalamak –

+0

'Microsoft BCL Portability Pack' gibi PCL'lere başvuruyor musunuz? Tüm derleme sürümlerinin aynı olduğundan emin olun, '.suo'yu silin ve temiz/derleme yapın. –

cevap

12

Web.config dosyasında aşağıdaki satırları olduğundan emin olun:

<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

Gelecekte başvurmak için Visual Studio'yu kapatıp Visual Studio'yu yeniden açmam gerekiyordu. Hatalar, bu cevabı izledikten sonra bile kapatıp tekrar açana kadar gitmedi. – Rinktacular

+0

Modelin cshtml dosyalarında uyarılardan kurtulmak için XPagedList'in bu satırlara ihtiyacı var gibi görünüyor. Ayrıca tüm projelerde bin ve obj klasörlerini sildim, Visual Studio 2017'yi kapattım ve çözümü yeniden açtı. Artık derleme hatasız çalışıyor. –

İlgili konular