ValidationAttribute.IsValid Method

Determines whether the specified object is valid.

Namespace:  System.ComponentModel.DataAnnotations
Assembly:  System.ComponentModel.DataAnnotations (in System.ComponentModel.DataAnnotations.dll)

'Declaration
Protected Overridable Function IsValid ( _
	value As Object, _
	validationContext As ValidationContext _
) As ValidationResult

Parameters

value
Type: System.Object
The object to validate.
validationContext
Type: System.ComponentModel.DataAnnotations.ValidationContext
An object that contains information about the validation request.

Return Value

Type: System.ComponentModel.DataAnnotations.ValidationResult
true if value is valid; otherwise, false.

ExceptionCondition
NotImplementedException

The IsValid method is not overridden in the derived class.

You override the IsValid method to provide the logic for your customized validation check. The GetValidationResult and Validate methods call the IsValid method to determine if the value is valid.

The following example shows a customized validation attribute that derives from ValidationAttribute. The class overrides the IsValid method to test whether the value is valid. By default, the attribute displays an error message that is included as a resource in the application.


Public Class EvenNumberAttribute
    Inherits ValidationAttribute

    Public Sub New()
        MyBase.New(Function() My.Resources.Resource1.EvenNumberError)
    End Sub

    Public Sub New(ByVal errorMessage As String)
        MyBase.New(Function() errorMessage)
    End Sub


    Protected Overrides Function IsValid(ByVal value As Object, _
                ByVal validationContext As ValidationContext) As ValidationResult
        If (value = Nothing) Then
            Return ValidationResult.Success
        End If

        Dim convertedValue As Integer
        Try
            convertedValue = Convert.ToInt32(value)
        Catch ex As FormatException
            Return New ValidationResult(My.Resources.Resource1.ConversionError)
        End Try

        If (convertedValue Mod 2 = 0) Then
            Return ValidationResult.Success
        Else
            Return New ValidationResult(FormatErrorMessage(validationContext.DisplayName))
        End If
    End Function
End Class


Silverlight

Supported in: 5, 4, 3

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show: