none
enviar fecha nula a WebApi .NET RRS feed

  • Pregunta

  • Hola a todos, estoy enviando una fecha nula fecha:""; a una webapi donde hago una validación modelstate para que me retorne un mensaje "Debe Digitar la Fecha"

    El problema es que al estar nula el siguiente error.

    {"Error converting value {null} to type 'System.DateTime'. Path 'Desplazamientos[0].FechaSalida', line 1, position 121."}

    Como puedo hacer para que me reconozca el mensaje que yo pongo y no me de ese error???

    Estaba pensando en el momento de recibir la entidad mirar si fecha == null entonces fecha = new datetime();

    pero no se si sea bueno hacer eso.

    martes, 7 de julio de 2015 14:09

Respuestas

Todas las respuestas

  • si tu entidad por temas de negocio puede contener fechas nulas yo definiria la propiedad FechaSalida como datetime? O Nullable<DateTime> para que me admita el nulo

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    martes, 7 de julio de 2015 14:19
    Moderador
  • hola

    pero defines un atributo de DataAnnotation sobre la entidad para indicar que esa propeidad fecha es requerida ? lo pregunto porque comentas que el modelstate le aplicas un valid

    no creo que sea buena idea aplicar una fecha por defecto cuando defines la propiedad como nulable

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 7 de julio de 2015 14:22
  • si tu entidad por temas de negocio puede contener fechas nulas yo definiria la propiedad FechaSalida como datetime? O Nullable<DateTime> para que me admita el nulo

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    Hola Sergio parra, Gracias por responder.

    La idea es que "NO" admita nulo, por eso tengo

    [Required(ErrorMessage = "Debe Digitar la Fecha de Salida")]
    public DateTime FechaSalida { get; set; }

    Entonces si la fecha viene nula me saldrá ese mensaje (esa es la idea pero no sucede)

    pues al estar nulo el modelstate me retorna el siguiente error

    {"Error converting value {null} to type 'System.DateTime'. Path 'Desplazamientos[0].FechaSalida', line 1, position 121."}

    martes, 7 de julio de 2015 14:23
  • también a la hora de recibir la entidad si ese campo va a nulo retornaria un mensaje de error indicando que debe digitar la fecha y retornando un HttpStatusCode.BadRequest

    HttpResponseMessage response = 
        this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Debe digitar la fecha");
    throw new HttpResponseException(response);


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    martes, 7 de julio de 2015 14:27
    Moderador
  • también a la hora de recibir la entidad si ese campo va a nulo retornaria un mensaje de error indicando que debe digitar la fecha y retornando un HttpStatusCode.BadRequest

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    Si, es que ese mensaje es el que no me lo da, me da es el otro que pongo y no el que yo pongo en el ErrorMessage
    martes, 7 de julio de 2015 14:29
  • también a la hora de recibir la entidad si ese campo va a nulo retornaria un mensaje de error indicando que debe digitar la fecha y retornando un HttpStatusCode.BadRequest

    HttpResponseMessage response = 
        this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Debe digitar la fecha");
    throw new HttpResponseException(response);


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos



    No se haría por el ModelState???
    martes, 7 de julio de 2015 14:38
  • Sergio, lo hice así y funciono. Tu me dirás si esta bien hecho o si es una buena practica, nuca había declarado con ese signo. Pero Funcionó.

    public DateTime? FechaSalida { get; set; }
    ya con eso si me retorna el error del ModelState
    • Editado CrissR martes, 7 de julio de 2015 14:41
    martes, 7 de julio de 2015 14:40
  • hola

    pero el action del webapi que tipo de dato retorna ? es un HttpResponseMessage

    Action Results in Web API 2

    porque quizas debas usar el Request.CreateResponse()

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 7 de julio de 2015 14:59
  • hola

    pero el action del webapi que tipo de dato retorna ? es un HttpResponseMessage

    Action Results in Web API 2

    porque quizas debas usar el Request.CreateResponse()

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Hola Leandro, hago un return BadRequest(ModelState);

    Logre que me funcionara la validación de la fecha agregándole "?"


    • Editado CrissR martes, 7 de julio de 2015 16:53
    martes, 7 de julio de 2015 15:16