Actualiser ModelState pour supprimer les erreurs

De l'actualisation de la ModelState

Salut, j'ai une question à propos de la ModelState dans un ASP.NET MVC contrôleur.

Lorsque l'utilisateur sélectionne une option à partir de l'affichage, de la date de début et date de fin pour la "certification" sera définie sur la base des autres dates entrées.

Le problème, c'est la certification des dates de revenir comme nulle et notre CertificationMetaData classe specifys les champs [Obligatoire] de sorte que le ModelState est pas valide dès que l'action des charges.

Retrait de la ModelSate manuelle des erreurs permet que cela fonctionne, mais je me demandais si il ya une meilleure façon de le faire? Est-il possible d'actualiser la ModelState? Dois-je faire le champs n'est pas nécessaire? Ou dois-je ajouter une date de valeur à partir de la vue avec le javascript?

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();
}

Aussi comme vous pouvez le voir, j'ai codé en dur la valeur de l'ID pour la certification de type. Quelle est la meilleure façon de comparer les valeurs avec la liste de choix des valeurs de la table? Est un enum la meilleure façon de le faire?

Grâce

source d'informationauteur HermanTheSheep