我正在构建用于进行预约的ASP.NET MVC Web应用程序。当我从数据库中检索预订时,尽管数据库具有有效的日期值,但日期列在前端仍显示为Null
。
我有一个名为Booking
的模型,其属性/字段如下。当我从数据库中检索名为Date
的字段时,_Date
和Null
字段都显示为Date
。我可以确认Setter方法可以正常工作,并将本地日期(以UTC时间保存)在数据库中。
[Display(Name = "Date", ResourceType = typeof(Fields))]
[DataType(DataType.Date), DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy HH:mm}")]
[NotMapped]
public DateTime? Date
{
get { return _Date; }
set
{
_LocalDateTime = value;
if (_Date is null)
{
_Date = DateUtilities.FromTimeZone(_LocalDateTime + LocalTime);
}
}
}
[Column("Date",TypeName = "Date")]
public DateTime? _Date { get; set; }
public DateTime? _LocalDateTime;
我有一个下面的控制器,该控制器从数据库中获取预订信息。
public ActionResult Details(Guid? id = null)
{
var booking = new Booking();
if (id == null) return View(booking);
booking = Uow.Bookings.Get(u => u.Id == id);
if (booking == null)
{
return HttpNotFound();
}
return View(booking);
}
我已经跟踪了通过Uow.Bookings发送的SQL查询。获取并在数据库中运行该查询,并获得了正确的日期值,例如
日期= 2019-05-17
这是我的看法
<div class="mb-lg">
@Model.Date.GetValueOrDefault().ToString("dd MMM yyyy") -
@Utilities.TimeSpanToHours(Model.StartTime, true)
</div>
我希望Date
/ _Date
属性/字段将从数据库返回有效值2019-05-17
。