как показать Html внутри сводки проверки?

avatar
MOHAMED ABUELATTA
8 августа 2021 в 21:03
170
0
0

Я пытаюсь показать проверку модели в виде HTML. но моя попытка всегда показывает текст. И вот моя попытка.

Действие здесь я добавляю ключ и значение к сводке модели

ModelState.AddModelError("ExistUserButNotConfirmed", CurrentUserLog.ExistUserButNotConfirmed);

Посмотреть здесь, где я много раз пытался показать эту ошибку

<div asp-validation-summary="All" class="text-danger"></div>
<span class="text-danger" asp-validation-for="ExistUserButNotConfirmed"></span>

@*@Html.Raw(Html.ValidationMessageFor(x => x.ExistUserButNotConfirmed).ToString())*@

@if (Html.ValidationMessageFor(x => x.ExistUserButNotConfirmed) != null)
{
    @Html.Raw(Html.ValidationMessageFor(x => x.ExistUserButNotConfirmed))
}

@if (Html.ValidationMessageFor(x => x.ExistUserButNotConfirmed) != null)
{
    @using System.Web;
    @Html.Raw(HttpUtility.HtmlDecode(Html.ValidationMessageFor(x => x.ExistUserButNotConfirmed).ToString()))
}

Модель здесь я храню текстовый формат Html, который мне нужно показать в представлении

public string ExistUserButNotConfirmed { get; set; } =    

@"<div class='card text-center'>
    <div class='card-header'>
        Your information are correct but your email isn't confirmed yet.
    </div>
    <div class='card-body'>
        <h5 class='card-title'>
            please, To activate your account
        </h5>
        <p class='card-text'>
            check out your Email to confirm your account <br />
            OR <i class='bi bi-arrow-down-short'></i>
        </p>
        <a href='#' class='btn btn-primary'>Go somewhere</a>
    </div>
    <div class='card-footer text-muted'>
        <a formnovalidate asp-action='ReSendEmail' asp-route-Email='' id='ReSendEmail' title='Re-Set your Email' class='float-end text-danger border-0 bg-transparent'>
            Re-Send Activation Email
            <svg xmlns='http://www.w3.org/2000/svg' width='25' height='25' fill='currentColor' class='bi bi-arrow-repeat' viewBox='0 0 16 16'>
                <path d='M11.534 7h3.932a.25.25 0 0 1 .192.41l-1.966 2.36a.25.25 0 0 1-.384 0l-1.966-2.36a.25.25 0 0 1 .192-.41zm-11 2h3.932a.25.25 0 0 0 .192-.41L2.692 6.23a.25.25 0 0 0-.384 0L.342 8.59A.25.25 0 0 0 .534 9z' />
                <path fill-rule='evenodd' d='M8 3c-1.552 0-2.94.707-3.857 1.818a.5.5 0 1 1-.771-.636A6.002 6.002 0 0 1 13.917 7H12.9A5.002 5.002 0 0 0 8 3zM3.1 9a5.002 5.002 0 0 0 8.757 2.182.5.5 0 1 1 .771.636A6.002 6.002 0 0 1 2.083 9H3.1z' />
            </svg>
        </a>
    </div>
</div>";

Результат

result

Источник
Peter B
8 августа 2021 в 22:15
1

Html.ValidationMessageFor uses plain text error messages as its input, and produces HTML as its output. Если это неприемлемо для вас, вам может понадобиться реализовать вариант этого метода, который ведет себя по-другому, но я бы рекомендовал не бороться с этим соглашением, гораздо проще просто принять его.

Md Farid Uddin Kiron
9 августа 2021 в 02:34
0

Вы пытались использовать string builder в своем бэкэнд-коде? Не могли бы вы поделиться своим внутренним кодом?

Ответы (0)