数据通道验证和自定义模型活页夹
-
05-10-2019 - |
题
我有一种操作方法,该方法接受以下模型 - 语言ViewModel:
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; }
}
我也有一个自定义模型粘合剂,将邮政数据绑定到 IEnumerable<LanguageItem>
.
问题是如何获得数据通量验证?
解决方案
我知道很晚的答案,这是针对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);
}
}
不隶属于 StackOverflow