es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Entrada de solo fecha para ASP .NET

Estoy usando ASP.NET Core 6 MVC para crear una aplicación vinculada a una base de datos, y tengo un problema:

Generé un controlador y sus vistas (crear, editar …), pero cuando intento crear un objeto para enviar a la base de datos con Entity Framework, los campos de tipo DateOnly no funcionan y ponen esta fecha para todas las fechas que intento escribir: 292269055-12-03 (parece ser el valor máximo?).

Necesito usar el tipo DateOnly por razones de compatibilidad porque la base de datos tiene columnas de fecha (encontré esta información aquí https://www.npgsql.org/doc/types/datetime.html) y si intento usar datetime, no funciona.

Este es mi código:

Vista:



Controlador (generado automáticamente):

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<iactionresult> Create([Bind("Id,Name,FirstName,BirthDay,Email,MobilePhone,LandLinePhone,PostalCity,PostalCode,PostalAdress,Gender,MedicalCertificate,MedicalCertificateStart,MedicalCertificateEnd,ProfilePicture")] Member member)
{
   if (ModelState.IsValid)
   {
       _context.Add(member);
       await _context.SaveChangesAsync();
       return RedirectToAction(nameof(Index));
   }

return View(member);
}

Y finalmente, el modelo donde intento cambiar esto:

[Required]
public DateOnly BirthDay { get; set; }
[NotMapped]
public DateTime BirthDayUI
{
get => BirthDay.ToDateTime(new TimeOnly());
set => BirthDay = DateOnly.FromDateTime(value);
}

El getter funciona perfectamente pero no el setter y no sé qué debo cambiar.

Gracias por ayudarme.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás teniendo un problema con el tipo DateOnly al intentar crear un objeto para enviar a la base de datos con Entity Framework. Estás utilizando el tipo DateOnly por razones de compatibilidad porque la base de datos tiene columnas date. Has proporcionado tu código para la vista, el controlador y el modelo, pero el setter para la propiedad BirthDayUI no está funcionando correctamente.

    Es difícil proporcionar una solución sin ver el código completo, pero puede ser útil verificar lo siguiente:

    • Asegúrate de que la propiedad BirthDayUI esté correctamente mapeada a la base de datos.
    • Verifica el tipo de datos de la propiedad BirthDay en la base de datos.
    • Verifica el tipo de datos de la propiedad BirthDayUI en la base de datos.
    • Asegúrate de que la propiedad BirthDayUI esté correctamente configurada en el controlador.
    • Asegúrate de que la propiedad BirthDayUI esté correctamente configurada en la vista.

    Si aún tienes problemas, proporciona más información sobre tu código y la estructura de la base de datos.

Comments are closed.