Frage

Ich habe eine Aktion-Methode, die das folgende Modell akzeptiert - 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; } 
}

Ich habe auch ein eigenes Modell Binder die POST-Daten an die IEnumerable<LanguageItem> zu binden.

Die Frage ist, wie kann ich DataAnnotations Validierung an der Arbeit?

War es hilfreich?

Lösung

Sehr spät antworte ich weiß, und es ist für MVC3. Fügen Sie die folgende an das Ende des Modells Bindemittel BindModel Methode

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);
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top