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

时间:2010-07-07 00:46:25

标签: asp.net-mvc-2 validation

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

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

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

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

如果有必要我可以发布代码,但是如果我复制并粘贴到这个框中它会破坏,因为它只有大约80个字符的宽度,我让错误消息字符串大部分时间都离开屏幕。

2 个答案:

答案 0 :(得分:2)

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

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

仅供参考,将代码粘贴到左侧的前导四个空格缓冲区中,它将被格式化(至少足以满足我们的目的)。

答案 1 :(得分:2)

我看到这个问题,因为我有同样的问题,安德鲁的解决方案很好,但没有解决user385060的问题,因为问题不是空间,是执行堆栈,如果你使用dataanotations验证,字段的验证首先执行,如果没有找到错误,则执行类级别的验证。 我希望这个答案可以帮助其他人。