public IActionResult Edit(int id, Pelicula pelicula, List <int> generoIds) { if (id != pelicula.Id) { return(NotFound()); } ValidarNombreExistente(pelicula); ValidarGeneros(generoIds); if (ModelState.IsValid) { try { var peliculaDb = _context .Peliculas .Include(x => x.Generos) .FirstOrDefault(x => x.Id == id); peliculaDb.Nombre = pelicula.Nombre; peliculaDb.ClasificacionId = pelicula.ClasificacionId; peliculaDb.Sinopsis = pelicula.Sinopsis; foreach (var peliculaGenero in peliculaDb.Generos) { _context.Remove(peliculaGenero); } foreach (var generoId in generoIds) { peliculaDb.Generos.Add(new PeliculaGenero { PeliculaId = peliculaDb.Id, GeneroId = generoId }); } _context.Update(peliculaDb); _context.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!PeliculaExists(pelicula.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewBag.SelectGeneros = new MultiSelectList(_context.Generos, nameof(Genero.Id), nameof(Genero.Descripcion)); ViewBag.SelectClasificaciones = new SelectList(_context.Clasificaciones, "Id", "Descripcion"); return(View(pelicula)); }