在普通的asp.net MVC中,如果我想将自定义html包含在由控制器或其他上游进程放置在其中的Validation摘要中,并在Razor中显示它,我将简单地执行以下操作:
@Html.Raw(HttpUtility.HtmlDecode(Html.ValidationSummary().ToHtmlString()))
以获取已解码的html。这似乎不再在Asp.Net核心中起作用。如何在.net core 2.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}}