ASP.NET MVC: ModelState always Valid

Damonftw

New Member
I am trying to validate a form using ModelState but my ModelState is always showing as valid. eg: When I am trying to save a 2 Person formModel each with the same SSN, the ModelState is returning valid. I am using IValidatableObject to validate my formmodel. Any ideas what I might be going wrong?\[code\]public JsonResult LoadOccupantsDetailedInformation(){ //Load the personsFormModel with data return new JsonpResult(personsFormModel, JsonRequestBehavior.AllowGet);}[HttpPost]public ActionResult SaveOccupantsDetailedInformation(PersonsFormModel personsFormModel) {//This line is always returning true even if I pass 2 persons with the same ssn if (ModelState.IsValid == false) { var errorList = ModelState.ToDictionary( kvp => kvp.Key, kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray() ); return Json(new { Errors = errorList }); } //Save the data in personsFormModel to database return Json(new JsonResultViewModel { Success = true }); }public partial class PersonsFormModel : List<PersonFormModel>, IValidatableObject{ public IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> Validate( ValidationContext validationContext) { var validationResults = new List<System.ComponentModel.DataAnnotations.ValidationResult>(); if (this.SSNs.Count() > this.SSNs.Distinct().Count()) { validationResults.Add(new System.ComponentModel.DataAnnotations.ValidationResult( "All the persons in the household should have a unique SSN\\ITIN number", new[] { "SSN" })); } return validationResults; } private IEnumerable<string> SSNs { get { return this.Select(element => element.SSN); } }} public class PrequalifyOccupantListPersonDetailedFormModel{ [Required(ErrorMessage = "SSN is required")] public string SSN { get; set; }}\[/code\]
 
Back
Top