How to Validate Forms with ASP.NET MVC 2 Data Annotations: Listing 5.

WithinDaysValidator Class to Define the Custom Client Validation Rule

Public Class WithinDaysValidator
    Inherits DataAnnotationsModelValidator(Of WithinDaysAttribute)
    Private _priorDays As Integer
    Private _subsequentDays As Integer
    Private _message As String

    Public Sub New(ByVal metadata As ModelMetadata,
                   ByVal context As ControllerContext,
                   ByVal attribute As WithinDaysAttribute)

        MyBase.New(metadata, context, attribute)

        _message = attribute.ErrorMessage
        _priorDays = attribute.PriorDays
        _subsequentDays = attribute.SubsequentDays
    End Sub

    Public Overrides Function GetClientValidationRules() _
      As IEnumerable(Of System.Web.Mvc.ModelClientValidationRule)

        Dim Rule As New ModelClientValidationRule _
        With {.ErrorMessage = _message, .ValidationType = 
          "withindays"}

        Rule.ValidationParameters.Add("prior", _priorDays)
        Rule.ValidationParameters.Add("subsequent", _subsequentDays)

        Dim ModelClientValidationRule() = {Rule}
        Return ModelClientValidationRule
    End Function
End Class
comments powered by Disqus

Featured

  • Low-Coding in the Age of AI: Dataverse Embraces Copilot, Claude and Cursor

    Microsoft is extending Dataverse into coding-agent marketplaces while expanding its MCP tools, certification program and governance controls.

  • Visual Studio Takes Aim at Copilot Billing Shock

    Beyond Copilot usage visibility, the June update delivers several other enhancements centered on AI-assisted development, security and quality-of-life improvements. Here's a quick rundown of the remaining additions announced by Microsoft.

  • Claude AI Gets Yet Another Boost in VS Code 1.128

    The July 8, 2026, Visual Studio Code update expands agent workflows, chat attachments, browser-tab controls, OS-level shortcuts and enterprise telemetry management.

  • TypeScript 7 Arrives to Rock VS Code with Go-Powered Speed

    Microsoft says TypeScript 7, announced July 8, brings native Go performance to VS Code, Visual Studio and other editors.

Subscribe on YouTube