public ActionResult Edit(int id, FormCollection collection) { try { model = new Categorias(Session); Categoria Categoria = new Categoria(); Categoria.CategoriaId = Convert.ToInt32(collection["CategoriaId"]); Categoria.Nome = collection["Nome"]; string[] Subcategorias = collection.GetValues("Subcategoria"); string[] SubcategoriaId = collection.GetValues("SubcategoriaId"); List<Categoria> ListSubcategoria = new List<Categoria>(); short i = -1; foreach (string nome in Subcategorias) { i++; Categoria Subcategoria = new Categoria(); Subcategoria.CategoriaId = String.IsNullOrWhiteSpace(SubcategoriaId[i]) ? 0 : Convert.ToInt32(SubcategoriaId[i]); Subcategoria.Nome = nome; Subcategoria.SuperCategoriaId = Categoria.CategoriaId; if (Subcategoria.CategoriaId > 0 || !String.IsNullOrWhiteSpace(Subcategoria.Nome)) { ListSubcategoria.Add(Subcategoria); } } Categoria.SubCategorias = ListSubcategoria.ToArray(); model.Edit(Categoria); return RedirectToAction("Index"); } catch { return View(); } }