Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

453
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!