asp.net-mvc - 将ValidationResult分配给特定字段?

标签 asp.net-mvc asp.net-mvc-3

我正在尝试使用IValidatableObject来相对于彼此验证表单值。我想将ValidationResult分配给特定字段,这样我可以在该字段旁边显示错误消息。

例如,我可能想让用户两次输入密码,并且如果第二个不等于第一个,则验证失败,然后在第二个之后显示错误消息。

但是,看来我只能以这种方式在模型级别分配错误。在模型级别,我的意思是错误将显示在@Html.ValidationSummary(true)上,并且与特定的模型字段无关。

我已经检查了ValidationResult的声明,但看不到任何对此有用的属性或方法。因此,有人可以向我展示一种从IValidateableObject的Validate方法内将ValidationResult分配给特定字段的方法,还是可以确认是否可以这样做?

(注意:我不是在寻找解决方法。请-例如,关于使用密码示例的过滤器,没有任何答案。我只想具体了解IValidateObject的限制。)

最佳答案

可能,ValidationResult有一个重载,它接受要关联的字符串的IEnumarable属性。

一个例子。

        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (Password != PasswordConfirmation)
            yield return new ValidationResult("Password confirmation must match", new[] { "PasswordConfirmation" }); 
    }

关于asp.net-mvc - 将ValidationResult分配给特定字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8573232/

相关文章:

c# - 如何像Stackoverflow一样制作消息通知?

javascript - 使用 JavaScript/Knockout 下拉列表中选定的值填充 MVC3 View 模型?

javascript - 从 ASP.NET MVC 3 开始,MicrosoftAjax.js、MicrosoftMvcAjax.js 和 MicrosoftMvcValidation.js 是否已过时?

ajax - 设置 HttpContext.Current.User

c# - 为什么我所有的 log4net 级别都是错误的?

asp.net-mvc - ASP.NET MVC 在 View 中生成子域 URL

c# - Asp.net MVC3 Razor View 引擎,使用 "Multiline @:"转义几行文本?

javascript - 编辑页面上的 ASP.Net MVC 5 Ajax 请求错误 __RequestVerificationToken 不存在

c# - 是否可以取消选择 RadioButton 组中的所有值?

asp.net-mvc-3 - MVC3 验证文本框之一或另一个所需