ASP MVC 2自定义CLASS验证属性错误消息未显示

问题描述 投票:2回答:2

在我的模型元数据类中,我正在使用数据注释属性进行属性验证。效果很好。

我已经在其中创建了一个Attributes命名空间和4个自定义验证属性,它们是从System.DataAnnotations.ValidationAttribute派生的;所有这些属性验证了整个模型本身,因为它们必须比较多个字段。我以PropertiesMustMatch属性为例。我知道这些属性有效,因为我已经对其进行了广泛的测试。问题是当这些属性之一触发错误时,它会重新呈现表单,一旦解决问题,就可以安全地提交并起作用。但是从属性中不会显示任何错误消息。

我的问题是如何将错误消息连接到ValidationSummary()?

我在视图中使用Html.ValidationSummary(true)。

[我可以在必要时发布代码,但是如果我将其复制并粘贴到此框中,则它会严重中断,因为它的宽度只有大约80个字符,并且我大多数时候都会让错误消息字符串不显示在屏幕上。

asp.net-mvc-2 validation
2个回答
2
投票

您是否在您的类中重写FormatErrorMessage()方法?

public override string FormatErrorMessage(string name)
{
   return String.Format(CultureInfo.CurrentUICulture, ErrorMessageString,
                        OriginalProperty, ConfirmProperty);
}

FYI,将代码粘贴到左侧的前导四个空格缓冲区中,并将其格式化为正确格式(至少足以满足我们的目的)。


2
投票

我看到这个问题是因为我有同样的问题,Andrew的解决方案很好,但不能解决user385060的问题。因为问题不是空间,而是执行堆栈,所以如果使用数据注释验证,则首先执行字段的验证,如果未发现错误,则执行类级别的验证。我希望这个答案对其他人有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.