public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { // ToDo: Refactor the Employee View Model to eliminate the need for this custom model binder. var request = controllerContext.HttpContext.Request; var model = new Employee { FirstName = request.Form.Get("FirstName"), LastName = request.Form.Get("LastName"), //HasDependents = Convert.ToBoolean(request.Form.Get("HasDependents")), }; if (request.Form.AllKeys.Contains("Dependendent_FirstName") && request.Form.AllKeys.Contains("Dependendent_LastName")) { var dependentFirstNames = request.Form.Get("Dependendent_FirstName") .Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); var dependentLastNames = request.Form.Get("Dependendent_LastName") .Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); if (dependentFirstNames.Count() != dependentLastNames.Count()) { throw new Exception("Employee Model Binder Error: Dependent Name Mismatch!"); } for (var i = 0; i < dependentFirstNames.Count(); i++) { model.Dependents.Add(new Dependent { FirstName = dependentFirstNames[i], LastName = dependentLastNames[i] }); } } return model; }
public BenefitsCalculator() { Employee = new Employee(); EmployeeList = new EmployeeList(); }