web-dev-qa-db-fra.com

Le type 'IEnumerable <>' est défini dans un assembly qui n'est pas référencé

J'ai ajouté le package de pépites suivant à mon application MVC 5 X.PagedList.Mvc

Je renvoie les résultats dans mon contrôleur/vue comme suit:

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

Mais à mon avis, j'obtiens l'erreur suivante The type 'IEnumerable<>' is defined in an Assembly that is not referenced. System.Runtime...

Je n'ai pas de fichier project.json dans mon application alors quelle est cette erreur?

21
adam78

Assurez-vous que vous disposez des lignes suivantes dans votre fichier 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>
22
lucacelenza

Je sais que c'est un peu "trop" tard pour répondre, mais pour qui vient d'avoir cette erreur, je l'ai résolue comme l'indique la deuxième moitié de l'erreur qui ajoute simplement une référence d'assembly pour la norme nette dans la section assemblies du fichier de configuration Web et comme suit:

<configuration>
  ...
  <system.web>
    <compilation debug="true" targetFramework="4.6.1">
      <assemblies>
        <add Assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"/>
      </assemblies>
    </compilation>
  </system.web>
      ...
</configuration>
5
mohaa8844