Вот в чем проблема. Я получаю IEnumerable из ViewPage, и когда я попытался преобразовать 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();
}
Я применил ту же логику к другому контроллеру. И работает нормально. Я не знаю, в чем проблема. Я уже очистил, перестроил проект, а также перезапустил свой ноутбук (хотя это было необходимо).
c#
asp.net-mvc-3
Дхвани
источник
источник
System.Core.dll
?= new List<Pax_Detail>()
перезаписи его в следующей строке с помощьюpax.ToList()
, потому что неиспользуемая память распределяется таким образомОтветы:
Вам не хватает директивы using для
System.Linq
?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);
источник
Мне не хватало ссылки на dll System.Data.Entity, и проблема была решена
источник
В моем случае я скопировал некоторый код из другого проекта, в котором использовался Automapper - мне потребовалось много времени, чтобы разобраться с этим. Просто нужно было добавить в проект пакет nuget automapper.
источник