Отображать html или многострочное сообщение в ValidationMessage в Blazor? - PullRequest
2 голосов
/ 25 апреля 2020

Проблема

Отображение списка сообщений об ошибках для пароля, как показано ниже:

  1. Должен содержать хотя бы одну заглавную букву.
  2. Должен содержать хотя бы одну строчную букву.
  3. Должен содержать хотя бы одну цифру.
  4. Должен содержать хотя бы один символ.
  5. Должен быть длиной 6 символов.

In MVC

Мы можем добиться этого с помощью следующего кода:

@Html.Raw(HttpUtility.HtmlDecode(Html.ValidationMessageFor(m => m.Email).ToHtmlString()))

Как мы можем сделать то же самое в Blazor? Пожалуйста, дайте мне знать, если для поддержки вопроса требуется больше вещей.

1 Ответ

0 голосов
/ 27 апреля 2020

Мне также нужно сделать это, чтобы иметь пользовательскую проверку, но это выглядит как ValidationMessage и, как вы сказали в комментариях

Как использовать то же самое с сообщением проверки в Blazor. К вашему сведению - сообщение проверки в Blazor выглядит как signUpModel.Email) ">

Способ сделать это - сделать то же самое, что и ValidationMessage, и изменить способ отображения

. можно просто скопировать код из репо и внести некоторые изменения.

  • Во-первых, было бы хорошо, если вы измените имя класса на что-то вроде CustomValidationMessage или что-то еще вы хотите.
  • Вы увидите метод BuildRenderTree, который представляет собой html с сообщениями проверки.
  • Если вы знаете, как использовать BuildRenderTree, вы можете просто отредактировать его, но Я рекомендую вам удалить этот метод и создать файл .razor, который будет отображать сообщения.
  • Делайте те же логики c, что и в этом методе (foreach the messages), и внутри вы можете отображать все, что захотите (например, используйте MarkupString(message)).

.razor

foreach (var message in CurrentEditContext.GetValidationMessages(_fieldIdentifier))
{
    @* use message the way you want*@
}
...