Как показать фрейм, если валидное сообщение действительно в Razor?

Я ищу какое-то время решение, но не могу его найти. У меня есть этот ValidateMessageFor в моей Razor, которые показывают сообщение об ошибке, если оно приходит туда.

Теперь я создал этот css-фрейм для этого сообщения и хочу, чтобы он отображался только при наличии некоторого ValidateMessage.

Я должен попробовать это:

@{
    if (@Html.ValidationMessageFor(u => u.CustomType) != null)
    {
    <p class="alert alert-danger alert-dismissible" role="alert">
        <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>@Html.Raw(@Html.ValidationMessageFor(u => u.CustomType))
    </p>
    }
}

Но это не работает. Проблема в том, что кадр всегда отображается (внутри нет сообщения об ошибке, пока я не сделаю ошибку, а затем отображается сообщение об ошибке). Вот как это выглядит, когда я прихожу в эту форму:

Если ошибка показывает:

1 ответ

Решение

Попробуй это: @Html.Raw(Server.HtmlDecode(@Html.ValidationMessageFor(u => u.CustomType).ToString())))

полный код:

@{
    if (!String.IsNullOrEmpty(@Html.ValidationMessageFor(u => u.CustomType).ToString()))
    {
    <p class="alert alert-danger alert-dismissible" role="alert">
        <button type="button" class="close" data-dismiss="alert">
            <span aria-hidden="true">&times;</span>
            <span class="sr-only">Close</span>
        </button>
        @Html.Raw(Server.HtmlDecode(@Html.ValidationMessageFor(u => u.CustomType).ToString())))
    </p>
    }
}
Другие вопросы по тегам