Dav*_* S. 2 razor asp.net-core-mvc asp.net-core
在正常的 asp.net MVC 中,如果我想在控制器或其他上游进程放置的验证摘要中包含自定义 html 并将其显示在 Razor 中,我只需执行以下操作:
@Html.Raw(HttpUtility.HtmlDecode(Html.ValidationSummary().ToHtmlString()))
Run Code Online (Sandbox Code Playgroud)
为了得到 html 解码。这似乎不再适用于 Asp.Net core。如何在 .net core 2.1 中获得相同的结果?
在 ASP.NET core 中,您可以使用显示 ModelState 错误的摘要asp-validation-summary(请参阅验证文档)
例如:
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
Run Code Online (Sandbox Code Playgroud)
如果您需要直接访问错误并创建自己的自定义 html 错误摘要/输出,您可以使用@ViewData.ModelState
例如:
<ul>
@foreach (var error in ViewData.ModelState.SelectMany(x => x.Value.Errors))
{
<li>@error.ErrorMessage</li>
}
</ul>
Run Code Online (Sandbox Code Playgroud)
如果错误消息包含原始 html,您可以使用@Html.Raw()
例如:
<ul>
@foreach (var error in ViewData.ModelState.SelectMany(x => x.Value.Errors))
{
<li>@Html.Raw(error.ErrorMessage)</li>
}
</ul>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4520 次 |
| 最近记录: |