The type 'IEnumerable<>' is defined in an assembly that is not referenced

心已入冬 提交于 2019-11-30 22:02:49

问题


I have added the following nuget package to my MVC 5 application X.PagedList.Mvc

I return the results in my controller/view as follows:

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

But in my view I am getting the following error The type 'IEnumerable<>' is defined in an assembly that is not referenced. System.Runtime...

I have no project.json file in my application so what is this error?


回答1:


Make sure you have the following lines in your Web.config file:

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



回答2:


I know its a bit "too" late for answering, but for who just had this error I solved it just as the second half of the error says which is just adding an assembly reference for net standard in the asemblies section in the web config file and as folowing:

< 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>
^_^



来源:https://stackoverflow.com/questions/38273842/the-type-ienumerable-is-defined-in-an-assembly-that-is-not-referenced

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!