asp.net-mvc - 在 Blazor 的 ValidationMessage 中显示 html 或多行消息?

标签 asp.net-mvc blazor blazor-client-side asp.net-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 中的代码即可并做一些改变。

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

. Razor

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

关于asp.net-mvc - 在 Blazor 的 ValidationMessage 中显示 html 或多行消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61429877/

相关文章:

razor - 是否可以从 Razor/Blazor 组件中获取原始 HTML?

Blazor WASM - 构建错误 - "Static web asset has a conflicting web root path"

asp.net-mvc - 调试asp.net mvc源代码?

jquery - 限制html表格中td标签的字符数

asp.net-mvc - MVC 中的保存文件对话框

Blazor On Parent 单击然后检查子复选框

asp.net - 如何在 ASP.NET MVC3 中对 ValueProviderFactories 进行单元测试?

blazor - 由于 "Unwanted Software",谷歌禁止广告。这可能是 Blazor DLL 吗?怎么解决?

Blazor 动态设置 CSS 文件

c# - 在客户端 Blazor 应用程序的页面中使用 [Authorize] 属性时出现授权问题