2011-02-15 60 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>,它工作。