在CustomValidation中返回复杂对象而不是ValidationResult

时间:2012-08-22 10:27:18

标签: c# asp.net-mvc validation c#-4.0 data-annotations

我有一个这样的课程:

[CustomValidation(typeof(Validate_Class_MetaData), "Validate")]
public class tbl_MetaData
{
     [Required(ErrorMessage = "-...")]
    [Range(1, Int64.MaxValue, ErrorMessage = "-...")]
    public global::System.Int64 Id { set; get; }

    ...
}

我希望使用另一个类验证我的课程:

public class Validate_Class_MetaData
{
    public static ValidationResult Validate (tblData tbl, ValidationContext vc)
    {

问题是我有一些错误的警告。我的意思是一些业务规则而不是错误,我希望向用户显示使用对话框进行警告,以及用户是否希望使用该警告保存记录。现在我无法使用ValidationResult返回复杂对象。

如何将ValidationResult.Success和一些警告一起返回?

感谢

1 个答案:

答案 0 :(得分:0)

不幸的是,ValidationResult类仅支持成功或失败。从链接(重点是我的):

  

如果成员的值成功验证,则返回   ValidationResult对象等于Success字段的值。至   判断验证是否成功,你应该检查是否成功   返回的对象等于成功。 如果成员的值没有   验证,返回的ValidationResult对象包含错误   消息和验证错误的成员名称集合,如果   它们可以被检索。

例如,您可以使用专用警告元素并向其添加文本来实现自己的警告,但ValidationResult不支持消息或警告。