asp.net core 2.1 с отображением HTML в итоговой валидации - PullRequest
0 голосов
/ 06 февраля 2019

В обычном MVC asp.net, если бы я хотел включить пользовательский html в сводку проверки, которая была помещена туда контроллером или другими вышестоящими процессами, и отобразить ее в Razor, я бы просто сделал что-то вроде:

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

, чтобы получить html-декодирование.Это больше не работает в ядре Asp.Net.Как можно добиться того же результата в .net core 2.1?

1 Ответ

0 голосов
/ 06 февраля 2019

В ядре ASP.NET вы можете отобразить сводку ошибок ModelState, используя asp-validation-summary (см. документация проверки )

Например:

<div asp-validation-summary="ModelOnly" class="text-danger"></div>

Если вам нужен прямой доступ к ошибкам и создать свой собственный html-отчет об ошибках / вывод, вы можете использовать @ViewData.ModelState

Например:

<ul>
    @foreach (var error in ViewData.ModelState.SelectMany(x => x.Value.Errors))
    {
        <li>@error.ErrorMessage</li>
    }
</ul>

Если сообщение об ошибке содержит rawHTML, вы можете использовать @Html.Raw()

Например:

<ul>
    @foreach (var error in ViewData.ModelState.SelectMany(x => x.Value.Errors))
    {
        <li>@Html.Raw(error.ErrorMessage)</li>
    }
</ul>
...