Я пишу RazorViewTest с использованием xUnit, и код моего теста довольно прост:
[Fact]
public async Task SimplePageWithModel()
{
var snapshot = await host
.CreateRazorViewTest("/Pages/SimplePageWithModel.cshtml")
.UseModel(new Pages.SimplePageWithModelModel { Message = "Hello from page model" })
.UseModelSnapshot(m => new { m.Message })
.BeforeRender((c, m) => {
m.ModelState.AddModelError("test", "Test Message");
m.ModelState.AddModelError("kir", "siktir");
})
.Snapshot()
.ConfigureAwait(false);
AssertSnapshot.ToMatchYamlSnapshot(snapshot);
}
Очевидно, я добавляю две ошибки модели. Код для моей страницы Razor следующий:
<code>@page
@model SimplePageWithModelModel
<div>@Model.Message</div>
<h2>Model State Erros</h2>
<ol>
@foreach (var modelEntry in ModelState)
{
<li>Html.ValidationMessage: <pre>@Html.ValidationMessage(modelEntry.Key)
foreach (ошибка var в modelEntry.Value.Errors)
{
@ (modelEntry.Key): @ error.ErrorMessage
}
}
Меня беспокоит то, что внутренний цикл отлично показывает ошибки моей модели, но строка @Html.ValidationMessage(modelEntry.Key)
всегда отображается пустой. То, что он представляет, в основном это:
<span class="field-validation-valid" data-valmsg-for="kir" data-valmsg-replace="true"></span>
, в нем нет содержимого.
Есть идеи?