Подтвердить что ты не робот

System.Collections.Generic.IEnumerable 'не содержит определения для' ToList '

Вот проблема. Я получаю IEnumerable из ViewPage, и когда я попробовал преобразовать List, он показывает мне ошибку:

'System.Collections.Generic.IEnumerable<Pax_Detail>' не содержит определение для "ToList" и никакого метода расширения "ToList", принимающего первый аргумент типа 'System.Collections.Generic.IEnumerable<Pax_Detail>' можно найти (вам не хватает директивы 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();
}

Я применил ту же логику на другом контроллере. И он работает нормально. Я не знаю, в чем проблема. Я уже очистил, перестроил проект, а также перезапустил свой ноутбук (хотя это было необходимо).

4b9b3361

Ответ 2

Вам не хватает ссылки на System.Linq.

Добавить

using System.Linq

чтобы получить доступ к функции ToList() в текущем файле кода.


Чтобы дать немного информации о том, почему это необходимо, Enumerable.ToList<TSource> - это метод расширения. Методы расширения определяются вне исходного класса, на который он нацелен. В этом случае метод расширения определяется в пространстве имен System.Linq.

Ответ 3

Альтернативой добавлению LINQ будет использование этого кода:

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

Ответ 4

Мне не хватало ссылки на System.Data.Entity dll и проблема была решена

Ответ 5

В моем случае, я скопировал некоторый код из другого проекта, который использовал Automapper - мне понадобилось много времени, чтобы разобраться с этим. Просто нужно было добавить пакет nugger automapper в проект.