Сводка проверки - PullRequest
       12

Сводка проверки

0 голосов
/ 23 октября 2018

Я использую вход для входа в свой проект Asp.Net
И я использую validationSummary для имени пользователя и пароля.
Все идет хорошо, но.
Мне нужно знать, если ValidationSummary есть ошибки, чтобы показать мне или нет до появления окна ошибок
Я использую vb.net для создания проекта
У меня нет кода для отображения.А также я не могу найти в Интернете ничего относительного, чтобы помочь мне в этом вопросе.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Идея использовать код, который я публикую, в конце концов верна.

Public Sub IsGroupValid(ByVal sValidationGroup As String, ByVal sender As Object, ByVal e As EventArgs)
    For Each validator As BaseValidator In Validators
        If validator.ValidationGroup = sValidationGroup Then
            Dim fValid As Boolean = validator.IsValid
            Dim CtrlToValidate As String = validator.ControlToValidate
            validator.DataBind()

            If Not fValid And CtrlToValidate = ServerHandler.UName Then
                validator.Validate()
                fValid = validator.IsValid
                ModelState.AddModelError(CtrlToValidate, validator.ID)
            ElseIf Not fValid And CtrlToValidate = "Password" And validator.ID = ServerHandler.PwdRq Then
                validator.Validate()
                fValid = validator.IsValid
                ModelState.AddModelError(CtrlToValidate, validator.ID)
            ElseIf Not fValid And CtrlToValidate = "Password" And validator.ID = ServerHandler.PwdRegEx Then
                validator.Validate()
                fValid = validator.IsValid
                ModelState.AddModelError(CtrlToValidate, validator.ID)
            End If
        End If
    Next
End Sub

Но есть условие, что кто-то или что-то выдаст ему список ошибок из ValidationSummaryGroup
И это сделаносо следующим кодом

Public Function LoadModel(ByVal sender As Object, ByVal e As EventArgs) As Boolean
    Dim retVal As New Boolean
    Try
        If Not ModelState.IsValid Then
            Dim result As StringBuilder = New StringBuilder()

            For Each item In ModelState
                Dim key As String = item.Key
                Dim errors = item.Value.Errors

                For Each [vError] In errors
                    ModelAnswer.Add(key & "^" & [vError].ErrorMessage)
                    retVal = True
                Next
            Next
        End If
        ModelState.Clear()
    Catch ex As Exception
        Environment.AssemblyInfo.ErrorAnswer = ServerHandler.ErrHandler.GetError(3, Nothing, Nothing, ex, Nothing)
        Environment.AssemblyInfo.ErrorAnswer = Environment.AssemblyInfo.ErrorAnswer & "\r\n ifExistConsistencyRecord "
        ServerHandler.ErrProperty._InnerError = Environment.AssemblyInfo.ErrorAnswer
        Environment.AssemblyInfo.errorCall = True
        retVal = False

    End Try
    Return retVal
End Function

Конечно ModelAnswer является ArrayList и объявлен как Public
И все это в соответствии с самой основной предпосылкой, все процессы для работы вна главной странице, а НЕ в "class"

Большое спасибо тем, кто помог решить эту загадку

0 голосов
/ 23 октября 2018

Вероятно, вы используете метод ValidationSummary в ваших представлениях Razor, который - согласно MSDN

Возвращает неупорядоченный список (элемент ul) сообщений проверки в ModelStateDictionary object.

Итак, если вы хотите узнать, будут ли какие-либо ошибки, показанные методом ValidationSummary, вы можете проверить это ModelStateDictionary в вашемКонтроллер перед доставкой вашего ответа в браузер.Это описано, например, здесь (на C #) .

В вашем методе контроллера вы можете получить доступ к ModelState.IsValid, если хотите знать, будут ли отображаться какие-либо ошибки.

Это прямо отвечает на ваш вопрос, но это может быть не оптимальным способом достижения того, чего вы хотите, глядя на картину в целом.Если вы хотите сделать что-то особенное, если в вашем контроллере произошел сбой при входе в систему, вы должны проверить непосредственно, не удалось ли выполнить вход, а не добавил ли какой-либо другой метод ошибки модели.Чтобы дать ответ, который может быть более точным, вам нужно уточнить свой вопрос и добавить более подробную информацию о том, что вы конкретно хотите сделать, и, возможно, также добавить часть своего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...