C# 自定义验证属性错误消息未与ValidationMessageFor一起显示
我有以下自定义验证:C# 自定义验证属性错误消息未与ValidationMessageFor一起显示,c#,asp.net-mvc,C#,Asp.net Mvc,我有以下自定义验证: [AttributeUsage(AttributeTargets.Property)] public class CollectionNotEmptyAttribute : ValidationAttribute { private const string errorMessage = "'{0}' must have at least one element."; public CollectionNotEmptyAttribute()
[AttributeUsage(AttributeTargets.Property)]
public class CollectionNotEmptyAttribute : ValidationAttribute
{
private const string errorMessage = "'{0}' must have at least one element.";
public CollectionNotEmptyAttribute()
: base(errorMessage)
{
}
public override bool IsValid(object value)
{
var collection = value as ICollection;
if (collection != null)
{
return collection.Count > 0;
}
return false;
}
public override string FormatErrorMessage(string name)
{
return String.Format(this.ErrorMessageString, name);
}
}
我的视图模型
public class ProjectViewModel
{
public ProjectViewModel()
{
this.Users = new Collection<UserProjectViewModel>();
}
public int ProjectID { get; set; }
[CollectionNotEmpty]
public Collection<UserProjectViewModel> Users { get; set; }
}
验证工作正常,Model.IsValid
如果收集计数低于1,则返回false,但未显示错误消息
任何帮助都将不胜感激。我认为您应该覆盖其他
有效的方法:
protected virtual ValidationResult IsValid(
Object value,
ValidationContext validationContext
)
因为它允许您返回带有正确错误消息的ValidationResult
您覆盖的那个只决定结果是否有效
protected virtual ValidationResult IsValid(
Object value,
ValidationContext validationContext
)