Oma*_*mar 12 asp.net validation asp.net-mvc-3
在我的模型中,似乎Validate()
只在两个属性都通过验证后调用.
public class MyModel : IValidatableObject
{
[Required]
public string Name { get; set;}
[Required]
public string Nicknames {get; set;}
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if(Nicknames != null && Nicknames.Split(Environment.NewLine.ToCharArray()).Count() < 2)
return yield result new ValidationResult("Enter at least two nicknames, new [] { "Nicknames" });
}
}
Run Code Online (Sandbox Code Playgroud)
当用户在Nicknames
文本区域中输入单行文本但将Name
文本框留空时,仅显示Required
该Name
属性的错误消息.应该从该Validate()
功能显示的错误消息永远不会显示.
只有在Name
文本框中输入名称后,文本中的某些Nicknames
文本才会被Validate()
调用.
这是它应该如何工作?当在当前页面上引起错误时,在后续页面上向用户显示错误消息似乎很奇怪.
mar*_*ind 18
这是设计的.在所有属性都通过验证之前,对象级验证不会触发,否则对象可能不完整.Validate方法用于比较一个属性与另一个属性.在您的情况下,您应该编写自定义属性验证器.
归档时间: |
|
查看次数: |
4546 次 |
最近记录: |