MVC 3在ValidationSummary中显示HTML

Chr*_*ken 10 html c# validation asp.net-mvc asp.net-mvc-3

我试图在验证摘要中显示一个强标记,但它编码并且无法正确显示.

@Html.ValidationSummary(false, "<strong>ERROR:<strong>The form is not valid!")
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它发挥作用?

小智 32

最简单的方法:

@if (!ViewData.ModelState.IsValid)
{
<div>@Html.Raw(HttpUtility.HtmlDecode(Html.ValidationSummary(false, "<strong>ERROR:<strong>The form is not valid!").ToHtmlString()))</div>
}
Run Code Online (Sandbox Code Playgroud)


jvl*_*amy 6

我发现了这个:

    public static MvcHtmlString ToMvcHtmlString(this MvcHtmlString htmlString)
    {
        if (htmlString != null)
        {
            return new MvcHtmlString(HttpUtility.HtmlDecode(htmlString.ToString()));
        }
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

然后 :

@Html.ValidationSummary(false, "<strong>ERROR:<strong>The form is not valid!").ToMvcHtmlString()
Run Code Online (Sandbox Code Playgroud)


Tom*_*bes 5

@Html.Raw(System.Web.HttpUtility.HtmlDecode((Html.ValidationSummary(false) ?? (object)"").ToString()))
Run Code Online (Sandbox Code Playgroud)


Rob*_*est 3

您可以按照此问题的已接受答案中的建议扩展 ValidationSummary 帮助程序 。

编辑:我认为输入的任何文本的编码都是一项安全功能,因此是一件好事。