У меня была эта ошибка уже более суток, и я действительно не могу ее исправить. Я знаю, что в этой теме есть много вопросов, которые я прочитал снова и снова, и до сих пор не решил проблему. Я просто изучаю MVC 4, поэтому я очень смущен. Я получаю сообщение об ошибке:MVC 4 Добавить ошибку
Элемент ViewData, имеющий ключ «CabinCrewId», имеет тип «System.Int32», но должен иметь тип «IEnumerable».
Любая помощь или направление были бы очень признательны!
Мой контроллер:
public ActionResult AddCrew()
{
FlightCabinCrew fcc = new FlightCabinCrew();
return View(fcc);
}
Сообщение Действие:
[HttpPost]
public ActionResult AddCrew(FlightCabinCrew fcc)
{
if (ModelState.IsValid)
{
using (A1Context db = new A1Context())
{
var data = from person in db.person
from flightcrew in db.flightcabincrew
from cabincrew in db.cabincrew
where flightcrew.cabinCrewId == cabincrew.person
where cabincrew.person == person.id
select person.name;
ViewBag.list = new SelectList(data.ToList(), "id", "name");
db.flightcabincrew.Add(fcc);
db.SaveChanges();
return RedirectToAction("Index");
}
}
else
{
using (A1Context db = new A1Context())
{
var data = from person in db.person
from flightcrew in db.flightcabincrew
from cabincrew in db.cabincrew
where flightcrew.cabinCrewId == cabincrew.person
where cabincrew.person == person.id
select person.name;
ViewBag.list = new SelectList(data.ToList(), "name", "name");
return View(fcc);
}
}
}
}
И мой вид:
<div class="editor-label">
@Html.LabelFor(model => model.cabinCrewId)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.cabinCrewId, (SelectList)ViewBag.list)
@Html.ValidationMessageFor(model => model.cabinCrewId)
</div>
Благодаря
Я знаю, что нужно назначить SelectList к ViewBag в GET AddCre w (как это было сделано в методе POST). но я точно знаю, что это метод GET и что я в него вложил.
В соответствии с поручением здесь человек класс
[Table("person")]
public class Person
{
[Key, Column(Order = 1)]
public int id { get; set; }
public string name { get; set; }
}
Можете ли вы добавить код класса 'person'? – ekad
@ekad здесь – user398239
Возможный дубликат [MVC 4 drop down box error] (http://stackoverflow.com/questions/26005982/mvc-4-drop-down-box-error) – Leo