UpdateModel will not update

The UpdateModel command does not update my object. The code is executed with no changes. Can you see why?
I think the problem is the name of the prefix. I have tried changing it; "Contract", "Contracts" and "contract".

The controller;
        [Authorize(Roles = "Inputter")]
        [HttpPost]
        public ActionResult Edit(int contractId, FormCollection formValues)
        {
            if (ModelState.IsValid)
            {
                using (var db = new ITOCEntities())
                {
                    var contract = db.Contracts.Single(x => x.ContractId == contractId);
                    string letter = contract.ContractNo_Letter;

                    UpdateModel(contract, "Contracts", formValues);
                    if (contract.ContractNo_Letter != letter)
                        contract.ContractNo_Number = Contract.AutogenerateContractNumber(contract.ContractNo_Letter);

                    var clientContact = db.Contacts.Single(x => x.ContactId == contract.ClientContactId);
                    UpdateModel(clientContact, "Contact", formValues);
                    var contractAdministrationContact = 
                        db.Contacts.Single(x => x.ContactId == contract.ContractAdministratorContactId);
                    UpdateModel(contractAdministrationContact, "Contact", formValues);
                    db.SaveChanges();
                }

                return RedirectToAction("List");
            }
            return View();
        }
------------------------------------------------------------
The ViewModel

    public class ContractViewModel
    {
        //private ITOCEntities db = new ITOCEntities();
        public Contract contract { get; set; }
        public IList<ContractType> contractTypes { get; set; }
        public IEnumerable<SelectListItem> contractTypesSelectList
        {
            get
            {
                return this.contractTypes.Select(item => new SelectListItem
                {
                    Text = item.ContractType1,
                    Value = item.ContractTypeId.ToString()
                });
            }
        }

 
        public Contact clientContact { get; set; }
        public Contact contractAdministratorContact { get; set; }

        public ContractViewModel()
        {
            using (var db = new ITOCEntities())
            {
                this.contractTypes = db.ContractTypes.ToList();

                this.clientContact = new Contact();
                this.contractAdministratorContact = new Contact();
                this.clientContact.ContactTypeId =
                    db.ContactTypes.Where(x => x.ContactType1 == "Client").SingleOrDefault().ContactTypeId;
                this.contractAdministratorContact.ContactTypeId =
                    db.ContactTypes.Where(x => x.ContactType1 == "CA").SingleOrDefault().ContactTypeId;
            }
        }
        public ContractViewModel(int contractId)
        {
            using (var db = new ITOCEntities())
            {
                this.contractTypes = db.ContractTypes.ToList();
                this.contract = db.Contracts.Where(x => x.ContractId == contractId).SingleOrDefault();
                this.clientContact = 
                    db.Contacts.Where(x => x.ContactId == this.contract.ClientContactId).SingleOrDefault();
                this.contractAdministratorContact =
                    db.Contacts.Where(x => x.ContactId == this.contract.ContractAdministratorContactId).SingleOrDefault(); 
          
            }
        }
--------------------------------------------------------
The ViewModel reference in the view;

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage<ITOC.WebUI.Models.ContractViewModel>" %>

Open in new window

hijiki7777Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

thaytu888888Commented:
- UpdateModel usually doesn't working properly, may be you HTML form contains check box, combo box...etc, it only work well when the form controls are all text box, better don't use UpdateModel, try to set contract data manually
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
hijiki7777Author Commented:
I can't say I am happy with this solution, but as far as I can tell you are right and as a result I took your advice and got it working.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Frameworks

From novice to tech pro — start learning today.