Ho problemi quando si maneggia la richiesta Inserisci per il mio controller:Non v'è alcun elemento Viewdata di tipo 'IEnumerable <SelectListItem>' che ha la chiave 'Carrera'
[HttpGet]
public ActionResult Crear()
{
CarreraRepository carreraRepository = new CarreraRepository();
var carreras = carreraRepository.FindAll().OrderBy(x => x.Nombre);
var carrerasList = new SelectList(carreras, "ID", "Nombre");
ViewData["Carreras"] = carrerasList;
Materia materia = new Materia();
return View(materia);
}
[HttpPost]
public ActionResult Crear(Materia materia, FormCollection values)
{
if (ModelState.IsValid)
{
repo.Add(materia);
repo.Save();
return RedirectToAction("Index");
}
return View(materia);
}
Quando l'azione HttpGet corre, il modulo per creare rende bene. I valori sono impostati correttamente su DropDownList e tutto è peachy; quando provo a inviare il modulo (esegui l'azione HttpPost), ricevo l'errore.
Qualcuno può darmi una mano?
È perché HttpPost non ha dichiarato un ViewData? Grazie per l'aiuto.
questo risolverà il problema ... Poiché sia il post e il bisogno di ottenere gli stessi primi 4 righe di codice, vorrei suggerire loro l'estrazione di un metodo quindi è tutto in un unico luogo. In questo modo se lo cambi, devi farlo solo in un posto. – thorkia
@thorkia, sì sono d'accordo con te .. –