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.
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 tipoDateOnly
por razones de compatibilidad porque la base de datos tiene columnasdate
. Has proporcionado tu código para la vista, el controlador y el modelo, pero el setter para la propiedadBirthDayUI
no está funcionando correctamente.Es difícil proporcionar una solución sin ver el código completo, pero puede ser útil verificar lo siguiente:
BirthDayUI
esté correctamente mapeada a la base de datos.BirthDay
en la base de datos.BirthDayUI
en la base de datos.BirthDayUI
esté correctamente configurada en el controlador.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.