RazorViewTest в .Net Core 2.2;@ Html.ValidationMessage ("ключ") ничего не отображает - PullRequest
0 голосов
/ 29 апреля 2019

Я пишу 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>, в нем нет содержимого.

Есть идеи?

1 Ответ

0 голосов
/ 29 апреля 2019

Если вы просматриваете Model имеет свойство kir, попробуйте добавить его, как описано в Документация проверки :

<span asp-validation-for="kir" class="text-danger"></span>
...