如果验证消息在Razor中有效,如何显示帧?

时间:2014-08-05 11:44:57

标签: asp.net-mvc validation razor validationmessage

我正在寻找一段时间的解决方案,但我找不到它。我在Razor中有这个ValidateMessageFor,如果它出现在那里会显示错误消息。

现在我已经为这条消息创建了这个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>
    }
}

但这不起作用。问题是框​​架总是显示(内部没有错误信息,直到我弄错,然后显示错误信息)。当我遇到这种形式时,这就是它的外观:

enter image description here

如果错误显示:

enter image description here

1 个答案:

答案 0 :(得分: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>
    }
}