No estoy seguro si es posible utilizar p
aragraph en lugar de span
predeterminado, ya que puede hacer imposible val Complemento de idation para colocar mensajes de error. Pero para div -s, eso es fácil, podrías escribir html helper personalizado.
Algo en esta línea (puede necesitar más pruebas/codificación). Deberá incluir el espacio de nombre de este método de extensión estática en su vista, o ponerlo en System.Web.Mvc.Html
directamente.
public static class Validator
{
public static MvcHtmlString MyValidationMessageFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
{
TagBuilder containerDivBuilder = new TagBuilder("div");
containerDivBuilder.AddCssClass("field-error-box");
TagBuilder topDivBuilder = new TagBuilder("div");
topDivBuilder.AddCssClass("top");
TagBuilder midDivBuilder = new TagBuilder("div");
midDivBuilder.AddCssClass("mid");
midDivBuilder.InnerHtml = helper.ValidationMessageFor(expression).ToString();
containerDivBuilder.InnerHtml += topDivBuilder.ToString(TagRenderMode.Normal);
containerDivBuilder.InnerHtml += midDivBuilder.ToString(TagRenderMode.Normal);
return MvcHtmlString.Create(containerDivBuilder.ToString(TagRenderMode.Normal));
}
}
Como se ve, este método por defecto utiliza ValidationMessageFor
, para no interferir con el procesamiento de mensajes de error de validación-plugin.
Y utiliza este simplemente, como la validación por defecto ayudante mensaje
@Html.MyValidationMessageFor(model => model.SomeRequiredField)
Esto es justo lo que estaba buscando. Todavía no entiendo el problema con el complemento de validación, pero investigaré eso. ¡Gracias! – parleer
Esto funcionó bien para mí, pero asegúrese de declarar su clase de ayuda estática en el espacio de nombres System.Web.Mvc.Html y funcionará muy bien. –
¿Cómo se cambia el html generado por el mensaje 'ValidationMessageFor'? No estoy hablando de envolverlo en otro div. ¿Es posible? –