title: Refresh ModelState to remove errors
body: <h2>Refreshing the ModelState</h2>
  
  <p>Hi, I have a question about the ModelState in an ASP.NET MVC controller.</p>
  
  <p>When the user selects a certain option from the view, the start date and end date for the "certification" will be set based on the other dates entered.</p>
  
  <p>The problem with this is the certification dates come back as null and our CertificationMetaData class specifys the fields as [Required] so the ModelState is invalid as soon as the action loads.</p>
  
  <p>Removing the ModelSate errors manually allows this to work but I was wondering if there is a better way to do this?  Is there a way to refresh the ModelState?  Should I make the fields not required?  Or should I add a date value from the view with javascript?</p>
  
  <pre><code>public ActionResult Create(FormCollection fc, Certification certification, Absence absence)
  {
      if (certification.CertificationTypeID == 1)
      {
          certification.CertificationStartDate = absence.StartDate;
          certification.CertificationEndDate = absence.StartDate.AddDays(7);
          this.ModelState.Remove("CertificationStartDate");
          this.ModelState.Remove("CertificationEndDate");
      }
  
      if (this.ModelState.IsValid)
      {
          // save
          return RedirectToAction("Index");
      }
       return View();
  }
  </code></pre>
  
  <p>Also as you can see I have hardcoded the ID value for the certification type. What is the best way to compare values with lookup table values?  Is an enum the best way to go?</p>
  
  <p>Thanks</p>