在 Blazor 的 ValidationMessage 中显示 html 或多行消息?

Display html or multiline message in ValidationMessage in Blazor?

问题

显示密码错误信息列表如下:

  1. 必须至少包含一个大写字母。
  2. 必须至少包含一个小写字母。
  3. 必须至少包含一个数字。
  4. 必须至少包含一个符号。
  5. 长度必须为 6 个字符。

在 MVC 中

我们可以通过下面的代码实现:

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

我们如何在 Blazor 中做同样的事情?如果需要更多的东西来支持这个问题,请告诉我。

我还需要执行此操作以进行自定义验证,但这看起来像 ValidationMessage 并且正如您在评论中所说

How to use the same with the validation message in the Blazor. FYI - validation message in Blazor looks as signUpModel.Email)">

执行此操作的方法与 ValidationMessage 相同,并更改其呈现方式

您只需复制 repo 中的代码并进行一些更改即可。

  • 首先,如果您将 class 的名称更改为 CustomValidationMessage 之类的名称或您想要的任何名称,那将会很好。
  • 您将看到使用验证消息构建 html 的方法 BuildRenderTree
  • 如果您知道如何使用 BuildRenderTree,您可以编辑它,但我建议您删除该方法并创建一个 .razor 文件来呈现消息。
  • 执行与该方法相同的逻辑(foreach 消息),在内部您可以呈现任何您想要的内容(例如使用 MarkupString(message))。

.剃刀

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