none
Helper ValidationSummary personalizacion de mensajes de error RRS feed

  • Pregunta

  • saludos comunidad tengo el siguiente problema,

    estoy usando este helper para que me muestren los errores en una lista html, cuando envio un formulario, me muestra lo siguiente con el helper ValidationMessageFor:

    En el cuadrado azul con el helper ValidationMessageFor tengo el siguiente codigo:

    <div class="editor-label">
                @Html.LabelFor(model => model.FechaLanzamiento)
            </div>
            <div class="editor-field">
                @Html.TextBoxFor(model => model.FechaLanzamiento, new { maxlength = 10, size = 7 })
                @Html.ValidationMessageFor(model => model.FechaLanzamiento, "La Fecha no tiene el formato correcto")
            </div>

    El atributo FechaLanzamiento no es obligatorio en el modelo entonces para tener un mensaje de error personalizado para el formato de fecha lo coloque en el helper ValidationMessageFor.

    Lo que quiero es tener ese mismo mensaje personalizado para el helper ValidationSummary, el mensaje que esta en el cuadrado verde es un mensaje por defecto.

    Para las validaciones estan activadas ClientValidationEnabled y UnobtrusiveJavaScriptEnabled.

    gracias por su tiempo.

    • Editado RealMaster domingo, 5 de abril de 2015 0:09
    domingo, 5 de abril de 2015 0:05

Respuestas

  • Intente lo que me mencionas Leandro, pero el Datatype sirve para formatear una fecha no para validarla como menciona aqui:

    http://stackoverflow.com/questions/13916991/mvc-datatype-errormessage

    estoy usando JQuery UI Datepicker en esa caja de texto, supuestamente valida pero nada, solo formatea, en el modelo tengo:

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    [Display(Name = "Fecha de Lanzamiento")]
    public DateTime? FechaLanzamiento { get; set; }

    Pero no valida debe ser por el JQuery UI Datepicker, anteriormente en un formulario sin datepicker lo habia validado de la anterior forma sin problemas.

    Entonces lo hice con una expresion regular:

    [Display(Name = "Fecha de Lanzamiento")]
    [RegularExpression(@"^(?:(?:0?[1-9]|1\d|2[0-8])(\/|-)(?:0?[1-9]|1[0-2]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:31(\/|-)(?:0?[13578]|1[02]))|(?:(?:29|30)(\/|-)(?:0?[1,3-9]|1[0-2])))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(29(\/|-)0?2)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$", ErrorMessage = "La Fecha no tiene el formato correcto")]
    public DateTime? FechaLanzamiento { get; set; }
    que es como se maneja JQuery Validate en las validaciones ya que esta interno en el framework mvc y aqui si ya tengo el mensaje de error en el Helper ValidationSummary
    • Marcado como respuesta RealMaster domingo, 5 de abril de 2015 23:56
    domingo, 5 de abril de 2015 23:55

Todas las respuestas

  • hola

    como defines los atributos de Data Annotations en la clase model para la propiedad FechaLanzamiento ?

    porque es alli donde debes personalizar el mensaje

    si usas el atributo DateType

    puedes definir la propiedad ErrorMessage

    para personalizar el mensaje cuando no sea una fecha valida

    Adding Validation

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 5 de abril de 2015 14:34
  • Intente lo que me mencionas Leandro, pero el Datatype sirve para formatear una fecha no para validarla como menciona aqui:

    http://stackoverflow.com/questions/13916991/mvc-datatype-errormessage

    estoy usando JQuery UI Datepicker en esa caja de texto, supuestamente valida pero nada, solo formatea, en el modelo tengo:

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    [Display(Name = "Fecha de Lanzamiento")]
    public DateTime? FechaLanzamiento { get; set; }

    Pero no valida debe ser por el JQuery UI Datepicker, anteriormente en un formulario sin datepicker lo habia validado de la anterior forma sin problemas.

    Entonces lo hice con una expresion regular:

    [Display(Name = "Fecha de Lanzamiento")]
    [RegularExpression(@"^(?:(?:0?[1-9]|1\d|2[0-8])(\/|-)(?:0?[1-9]|1[0-2]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:31(\/|-)(?:0?[13578]|1[02]))|(?:(?:29|30)(\/|-)(?:0?[1,3-9]|1[0-2])))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(29(\/|-)0?2)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$", ErrorMessage = "La Fecha no tiene el formato correcto")]
    public DateTime? FechaLanzamiento { get; set; }
    que es como se maneja JQuery Validate en las validaciones ya que esta interno en el framework mvc y aqui si ya tengo el mensaje de error en el Helper ValidationSummary
    • Marcado como respuesta RealMaster domingo, 5 de abril de 2015 23:56
    domingo, 5 de abril de 2015 23:55