【问题标题】:Problem rendering error text from Custom Validator来自自定义验证器的问题呈现错误文本
【发布时间】:2009-01-12 19:29:33
【问题描述】:

我有一个试图登录用户的页面。在页面顶部,我有一个 ValidationSummary 控件。我没有在页面中显式声明控件,并且正在调用静态方法以在出现错误时将验证器添加到页面。 (见下文)

提交页面时,会出现 ValidationSummary,但是,ValidationSummary 控件中不会显示任何错误消息。这几乎就像控件不知道要向控件写入什么错误文本一样。

我是否必须重写 BaseValidator 中的方法才能显示验证器的错误文本?

验证器添加到页面的方式如下:

Private Sub btnWindowsLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnWindowsLogin.Click
    Dim username As String = txtNetworkID.Text.Trim
    Dim password As String = txtPassword.Text

    If username.IsEmpty Then
        ErrorSummary.AddError("Please enter your NT Login", "WindowsLogin", Page)
    End If
    If password.IsEmpty Then
        ErrorSummary.AddError("Please enter your password", "WindowsLogin", Page)
    End If
    If Page.IsValid Then
        If Not AuthenticationService.ValidateActiveDirectoryLogin(username, password) Then
            ErrorSummary.AddError("The username or password you entered is incorrect", Page)
        ElseIf Not UserService.WindowsLoginExists(username) Then
            ErrorSummary.AddError("The NT Login entered is not associated with an account in the application", Page)
        Else
            'Get the user and validate the role, if the user is active, etc...

        End If
    End If
End Sub

这里是 ErrorSummary 类:

Public Class ErrorSummary
    Inherits BaseValidator

    Public Sub New(ByVal message As String, ByVal validationGroup As String)
        MyBase.Text = message
        MyBase.ValidationGroup = validationGroup
        MyBase.IsValid = False
    End Sub

    Public Sub New(ByVal message As String)
        Me.New(message, String.Empty)
    End Sub

    Public Shared Sub AddError(ByVal message As String, ByVal page As Page)
        AddError(message, String.Empty, page)
    End Sub

    Public Shared Sub AddError(ByVal message As String, ByVal validationgroup As String, ByVal page As Page)
        Dim objError As New ErrorSummary(message, validationgroup)
        page.Validators.Add(objError)
    End Sub

    Protected Overrides Function EvaluateIsValid() As Boolean
        Return False
    End Function

End Class

【问题讨论】:

    标签: asp.net validation


    【解决方案1】:

    我认为您想设置ErrorMessage 属性,而不是Text 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 2012-01-21
      • 2016-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多