Il testo di convalida è codificato prima della ValidationSumary o ValidationFor, ecc ...
Hai solo bisogno tu decodificare il codice HTML, quindi creare un MvcHtmlString ...
Esempio:
@HttpUtility.HtmlDecode(Html.ValidationSummary().ToString()).ToMvcHtmlString()
si tratta di un'estensione che ho fatto per rendere MvcHtmlString:
namespace System
{
public static class StringExtension
{
public static System.Web.Mvc.MvcHtmlString ToMvcHtmlString(this string value)
{
return System.Web.Mvc.MvcHtmlString.Create(value);
}
}
}
oppure è possibile creare un HtmlHelper se si prevede di riutilizzare questo:
namespace System.Web.Mvc.Html
{
public static class FormHelper
{
public static MvcHtmlString ValidationSummaryEx(this HtmlHelper htmlHelper, bool excludePropertyErrors)
{
var original = htmlHelper.ValidationSummary(excludePropertyErrors);
var decoded = HttpUtility.HtmlDecode(original.ToString());
return decoded.ToMvcHtmlString();
}
}
}
spero che voi o spettatore futuro aiutare. Nota: funziona per tutte le convalide Riassunto e ValidazionePer ...
Davvero una bella soluzione, Ben! Ho finito per testare se 'Html.ValidationSummary() == null' prima e usando' Html.Raw() 'sull'output, ma funziona molto bene. Grazie! –
Questo è intelligente :) –