2011-02-15 104 views
9

我试图在验证摘要中显示一个强标记,但它对它进行编码并且不能正确显示。MVC 3在ValidationSummary中显示HTML

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

我该如何得到这个工作?

回答

4

您可以按照在this question上接受的答案中的建议扩展ValidationSummary帮助程序。

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

6

我已经发现这一点:

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

然后:

@Html.ValidationSummary(false, "<strong>ERROR:<strong>The form is not valid!").ToMvcHtmlString() 
27

最简单的方法:

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

这解决了我的问题。 – qub1n 2013-11-18 18:17:08

+1

伟大的作品.... – user1882705 2013-12-02 20:07:15

5
@Html.Raw(System.Web.HttpUtility.HtmlDecode((Html.ValidationSummary(false) ?? (object)"").ToString())) 
-3

我有一个使用的资源文件的网站语言。在其中的一个项目中,我放置了这个值:<img src="images/exclamation.png" > <strong>Pharmacy Name is required</strong>,它工作。