Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

460
Vistas
¿Cómo puedo usar los parámetros de consulta DateOnly/TimeOnly en ASP.NET Core 6?

A partir de .NET 6 en ASP.NET API, si desea obtener DateOnly (o TimeOnly ) como parámetro de consulta, debe especificar por separado todos sus campos en lugar de simplemente proporcionar una cadena ("2021-09-14" o " 10:54:53" para TimeOnly ) como puede hacerlo para DateTime .

Pude arreglar eso si son parte del cuerpo agregando un convertidor JSON personalizado ( AddJsonOptions(o => o.JsonSerializerOptions.Converters.Add(...)) ), pero no funciona para los parámetros de consulta.

Sé que eso podría solucionarse con el archivador de modelos, pero no quiero crear un archivador de modelos para cada modelo que contenga DateOnly/TimeOnly . ¿Hay alguna manera de arreglar esta aplicación de ancho?

Manifestación:

Supongamos que tiene una acción siguiente:

[HttpGet] public void Foo([FromQuery] DateOnly date, [FromQuery] TimeOnly time, [FromQuery] DateTime dateTime)

Así es como se representaría en Swagger:

ingrese la descripción de la imagen aquí

Lo quiero representado como tres campos de cadena: uno para DateOnly , uno para TimeOnly y otro para DateTime (este ya está presente).

PD: No es un problema de Swagger, es uno de ASP.NET. Si trato de pasar ?date=2021-09-14 manualmente, ASP.NET no lo entendería.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

También encontré su problema en mi lado y parece que el constructor en sí no admite el modo sin parámetros. Como el siguiente código:

 public DateOnly(int year, int month, int day) { throw null; } [NullableContext(1)] public DateOnly(int year, int month, int day, Calendar calendar) { throw null; }

Mientras que DateTime admite:

 public DateTime Date { get { throw null; } }

Por lo tanto, me temo que antes de algunas actualizaciones en DateOnly y TimeOnly , todos necesitamos usar string en su lugar y dividir la cadena en año, mes y día y luego new DateOnly(int year, int month, int day) .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda