Question

J'ai une méthode d'action qui accepte le modèle suivant - LanguagesViewModel:

public class LanguagesViewModel : ViewModelBase
{
 IEnumerable<LanguageItem> Languages { get; set; }
}

public class LanguageItem
{
 [Required]
 public int LanguageId { get; set; }

 [Required]
 public int SpeakingSkillId { get; set; }

 [Required]
 public int WritingSkillId { get; set; }

 [Required]
 public int UnderstandingSkillId { get; set; } 
}

I ont également un liant à base de modèle personnalisé pour lier les données de courrier à l'IEnumerable<LanguageItem>.

La question est de savoir comment puis-je obtenir la validation DataAnnotations au travail?

Était-ce utile?

La solution

Très tard réponse que je sais, et il est pour MVC3. Ajouter ce qui suit à la fin de votre modèle liant méthode bindModel

if (model != null)
{
    System.Web.Mvc.ModelMetadata modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, model.GetType());
    ModelValidator compositeValidator = ModelValidator.GetModelValidator(modelMetadata, controllerContext);
    foreach (ModelValidationResult result in compositeValidator.Validate(null))
    {                                    
        bindingContext.ModelState.AddModelError(result.MemberName, result.Message);
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top