none
DatePicker error de fecha no valida RRS feed

  • Pregunta

  • Buenas noches, tengo problemas con un DatePicker en una vista Razor de MVC 5, estoy pintando correctamente el JQUERY UI, datepicker, con el formato dd/mm/yyyy, todo bien, pero cuando escojo una fecha superior al 12, me da error, el campo debe ser una fecha, cuando selecciono un valor menor al día 12, lo ejecuta bien, pero al controlador llega mm/dd/yyyy, por supuesto esto no me sirve en la consulta que quiero hacer.

    Se que se ha escrito mucho sobre el tema y de verdad ya a estas altura he implementado como 6 ejemplos distintos que he conseguido en el foro y nada me soluciona el problema, de verdad disculpen mi ignorancia, pero ya estoy cansado, imagino que tengo que configurar la globalización en el Web.config, ya lo he hecho y nada, nada de lo que probado me sirve. 

    Queridos hermanos, necesito una mano.

    en la vista:

    <div class="input-group">
        @Html.Label("Fecha Desde", htmlAttributes: new { @class = "control-label col-md-12" })
        <div class="col-md-8">
            @Html.EditorFor(model => model.FechaDesde, new { htmlAttributes = new { @class = "col-md-9" } })
        </div>                
    </div><!-- /input-group -->

    el javascript

    $(function () {
    
        //Array para dar formato en español 
        $.datepicker.regional['es'] =
        {
            closeText: 'Cerrar',
            prevText: 'Previo',
            nextText: 'Próximo',
    
            monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
            'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
            monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun',
            'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
            monthStatus: 'Ver otro mes', yearStatus: 'Ver otro año',
            dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
            dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sáb'],
            dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
            dateFormat: 'dd/mm/yy', firstDay: 0,
            initStatus: 'Selecciona la fecha', isRTL: false
        };
    
    
        $(".datefield").datepicker($.datepicker.regional["es"]);
    });


    en el modelo:

    [DisplayFormat(DataFormatString = "{0:dd/MM/aaaa}", ApplyFormatInEditMode = true)]public DateTime? FechaDesde { get; set; }

    quisiera que al controlador llegara: dd/mm/yyyy, y que ademas me permita seleccionar una fecha superior al día 12.

    Saludos cordiales.

     


    lunes, 17 de diciembre de 2018 3:29

Todas las respuestas

  • hola

    el problema seguramente es la configuracion regional del sitio web, sino la cambiaste seguro este tomando el formato de en-US que es MM/dd/yyyy

    para cambiarlo define en el web.config

    <globalization uiCulture="es" culture="es-ES" />

     

    de esta forma define una cultura compatible con el formato de fecha que esperas recibir

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 17 de diciembre de 2018 12:41
  • Gracias Leandro, hice este cambio en el web config no se si es que lo estoy haciendo en la section que no corresponde.

    <system.web>
        <authentication mode="None" />
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
        <globalization uiCulture="es" culture="es-ES" />
        <!--<globalization enableClientBasedCulture="true" uiCulture="es-MX" culture="es-MX" />-->
        <httpModules>
          <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
        </httpModules>
      </system.web>

    y este es el resultado, estoy seleccionando el 02/12/2018.

    

    lunes, 17 de diciembre de 2018 16:05