2016-07-08 2 views
12

verwiesen wird, ich habe folgendes nuget Paket meine MVC 5 Anwendung X.PagedList.MvcDer Typ ‚IEnumerable <>‘ wird in einer Baugruppe definiert, die nicht

Ich kehre die Ergebnisse in meinem Controller/Ansicht hinzugefügt als folgt:

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

Aber meiner Ansicht I The type 'IEnumerable<>' is defined in an assembly that is not referenced. System.Runtime...

ich habe keine project.json Datei in meiner Anwendung so was ist dieser Fehler die folgende Störung erhalte?

+0

konnte zeigen Ihnen Anweisungen verwenden? – Win

+0

Stellen Sie sicher, dass Sie keinen Bezug zu 'System.Runtime' haben. Das kann Dinge verrückt machen –

+0

Sind Sie Referenz-und PCLs wie Microsoft BCL Portabilität Pack? Stellen Sie sicher, dass alle Ihre Assembly-Versionen identisch sind, löschen Sie Ihre '.suo' und führen Sie einen Clean/Build durch. –

Antwort

12

Achten Sie darauf, die folgenden Zeilen in der Datei Web.config haben:

<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

Für zukünftige Referenz musste ich mein Visual Studio schließen und dann Visual Studio erneut öffnen. Die Fehler gingen nicht weg, selbst nachdem ich diese Antwort befolgt hatte, bis ich schloss und wieder öffnete. – Rinktacular

+0

Es scheint, 'XPagedList' benötigt diese Zeilen, um Warnungen über Model in cshtml-Dateien loszuwerden. Ich habe auch bin und obj Ordner in allen Projekten gelöscht, Visual Studio 2017 geschlossen und die Lösung erneut geöffnet. Jetzt funktioniert der Build ohne Fehler. –

Verwandte Themen