asp.net core 2.1在“验证摘要”中显示HTML

时间:2019-02-06 16:42:20

标签: razor asp.net-core asp.net-core-mvc

在普通的asp.net MVC中,如果我想将自定义html包含在由控制器或其他上游进程放置在其中的Validation摘要中,并在Razor中显示它,我将简单地执行以下操作:

@Html.Raw(HttpUtility.HtmlDecode(Html.ValidationSummary().ToHtmlString()))

以获取已解码的html。这似乎不再在Asp.Net核心中起作用。如何在.net core 2.1中获得相同的结果?

1 个答案:

答案 0 :(得分:0)

在ASP.NET核心中,您可以使用<div asp-validation-summary="ModelOnly" class="text-danger"></div> (请参阅validation documentation)显示ModelState错误的摘要

例如:

@ViewData.ModelState

如果您需要直接访问错误并创建自己的自定义html错误摘要/输出,则可以使用<ul> @foreach (var error in ViewData.ModelState.SelectMany(x => x.Value.Errors)) { <li>@error.ErrorMessage</li> } </ul>

例如:

@Html.Raw()

如果错误消息包含原始html,则可以使用<ul> @foreach (var error in ViewData.ModelState.SelectMany(x => x.Value.Errors)) { <li>@Html.Raw(error.ErrorMessage)</li> } </ul>

例如:

{{1}}