Why ModelState.IsValid always return false in mvc

asp.net-mvc, c#

Solution

Please post your Model Class.

To check the errors in your `ModelState` use the following code:

var errors = ModelState
    .Where(x => x.Value.Errors.Count > 0)
    .Select(x => new { x.Key, x.Value.Errors })
    .ToArray();

OR: You can also use

var errors = ModelState.Values.SelectMany(v => v.Errors);

Place a break point at the above line and see what are the errors in your `ModelState`.

Problem

In my controller this code: ``` [HttpPost] public ActionResult Edit(Company company, FormCollection IsCostCenters) { if (ModelState.IsValid) { Company objNewCompany = new Company(); //oParty.CostCenters.Clear(); using (PaymentAdviceEntityContainer db1 = new PaymentAdviceEntityContainer()) { objNewCompany = db1.Companies.Find(company.Id); objNewCompany.CostCenters.Clear(); string[] temp = IsCostCenters["CostCenters"].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var s in temp) { if (s != "false") { CostCenter oCostCenter = new CostCenter(); oCostCenter = db1.CostCenters.Find(Convert.ToInt32(s)); objNewCompany.CostCenters.Add(oCostCenter); } } db1.SaveChanges(); } db.Entry(company).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.CreatedById = new SelectList(db.Employees, "Id", "FirstName", company.CreatedById); return View(company); } ``` And my view code as below ``` @using PaymentAdviceEntity; @{ ViewBag.Title = "Edit"; List<CostCenter> clist = new List<CostCenter>(); clist = ((List<CostCenter>)ViewBag.CostCenters).ToList(); } <div style="line-height: 22px; width: 100%;height :3%; float: left; "> @{ foreach (var item in clist) { <div style="line-height: 22px; width: 28%; float: left;"> <span class="checkbox">@Html.CheckBox("CostCenters", item.IsChecked, new { @value = item.Id })</span> <span>@Html.DisplayFor(modelItem => item.Name)</span> </div> } } ``` So please what is reason `ModelState.IsValid` is return false in page post time ...

Original source

Related problems