Ant*_*Ant 2 custom-model-binder data-annotations asp.net-mvc-2
我有一个接受以下模型的action方法 - 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; }
}
Run Code Online (Sandbox Code Playgroud)
我还有一个自定义模型绑定器将POST数据绑定到IEnumerable<LanguageItem>.
问题是我如何使DataAnnotations验证工作?
我知道的答案非常晚,而且它适用于MVC3.将以下内容添加到模型绑定器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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1484 次 |
| 最近记录: |