public ActionResult Index(EventViewModel viewModel, string action = null, string delete = null) { if (action == "new") { ModelState.Clear(); if (viewModel.Events == null) { viewModel.Events = new List <EventItemModel>(); } viewModel.Events.Add(new EventItemModel()); } else if (action == "motd") { viewModel.Motd = viewModel.GenerateMotd(); } else if (action == "save") { try { if (ModelState.IsValid) { viewModel.SaveChanges(); return(RedirectToAction("Index")); } } catch (Exception ex) { while (ex != null) { ModelState.AddModelError("", ex.Message); ex = ex.InnerException; } } } else if (!string.IsNullOrWhiteSpace(delete)) { viewModel.Events.RemoveAt(int.Parse(delete)); ModelState.Clear(); } return(View(viewModel)); }