public ActionResult AddMultipleRemoveOne(AddMultipleViewModel model, int index)
 {
     ModelState.Clear();
     model.Contacts.RemoveAt(index);
     TempData["model"] = model;
     return RedirectToAction("AddMultiple");
 }
 public ActionResult AddMore(AddMultipleViewModel model)
 {
     ModelState.Clear();
     model.Contacts.Add(new Contact() { });
     TempData["model"] = model;
     return RedirectToAction("AddMultiple");
 }
 public ActionResult AddMultiple(AddMultipleViewModel model)
 {
     if (this.ModelState.IsValid)
     {
         var logic = new ContactBUS();
         foreach (var contact in model.Contacts)
         {
             logic.CreateContact(contact);
         }
         TempData["model"] = model;
         return RedirectToAction("Confirmation");
     }
     else
     {
         return View(model);
     }
 }
        public ActionResult Knockout(AddMultipleViewModel model)
        {
            var errors = new Dictionary<string, ModelErrorCollection>();
            foreach(var key in this.ModelState.Keys)
                errors.Add(key, this.ModelState[key].Errors);

            this.ViewData["Errors"] = errors;

            if(this.ModelState.IsValid)
            {
                var logic = new ContactBUS();
                foreach(var contact in model.Contacts)
                    logic.CreateContact(contact);
                TempData["model"] = model;
                return RedirectToAction("Confirmation");
            }
            return View(model);
        }
 public ActionResult Knockout()
 {
     var model =  new AddMultipleViewModel { Contacts = new List<Contact> { new Contact { } } };
     return View(model);
 }