繁体   English   中英

System.Collections.Generic.IEnumerable' 不包含 'ToList' 的任何定义

[英]System.Collections.Generic.IEnumerable' does not contain any definition for 'ToList'

这是问题所在。 我从 ViewPage 获取 IEnumerable,当我尝试将其转换为 List 时,它显示了如下错误:

System.Collections.Generic.IEnumerable<Pax_Detail> ”不包含“ToList”的定义,并且没有可以找到接受“ System.Collections.Generic.IEnumerable<Pax_Detail> ”类型的第一个参数的扩展方法“ToList”(您是否缺少 using 指令或程序集引用?)

这是我的控制器代码:

[HttpPost]
public ActionResult Edit_Booking(Booking model, IEnumerable<Pax_Detail> pax)
{
  List<Pax_Detail> paxList = new List<Pax_Detail>();
  paxList = pax.ToList(); //getting error here
  BookingDL.Update_Booking(model, paxList);
  return View();
}

我在另一个控制器上应用了相同的逻辑。 它工作正常。 我不知道它有什么问题。 我已经清理,重建项目并重新启动了我的笔记本电脑(尽管需要)。

您是否缺少System.Linq的 using 指令?

http://msdn.microsoft.com/en-us/library/bb342261.aspx

您缺少对 System.Linq 的引用。

添加

using System.Linq

访问当前代码文件上的 ToList() 函数。


为了说明为什么需要这样做, Enumerable.ToList<TSource>是一个扩展方法。 扩展方法是在它所针对的原始类之外定义的。 在这种情况下,扩展方法是在System.Linq命名空间上定义的。

添加 LINQ 的另一种方法是使用以下代码:

List<Pax_Detail> paxList = new List<Pax_Detail>(pax);

我缺少 System.Data.Entity dll 引用,问题已解决

就我而言,我从另一个使用 Automapper 的项目中复制了一些代码——我花了很长时间才弄明白。 只需将 automapper nuget 包添加到项目中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM