94

这是问题所在。我从 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();
}

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

4

5 回答 5

262

您是否缺少 using 指令System.Linq

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

于 2013-04-04T13:39:37.383 回答
34

您缺少对 System.Linq 的引用。

添加

using System.Linq

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


提供一些关于为什么这是必要的信息,Enumerable.ToList<TSource>是一种扩展方法。扩展方法是在它所针对的原始类之外定义的。在这种情况下,扩展方法是在System.Linq命名空间上定义的。

于 2013-04-04T13:40:07.917 回答
9

添加 LINQ 的替代方法是使用此代码:

List<Pax_Detail> paxList = new List<Pax_Detail>(pax);
于 2013-04-04T13:44:34.790 回答
4

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

于 2015-05-18T09:46:22.010 回答
0

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

于 2019-07-03T10:46:08.910 回答