MVC模型的日期字段显示为空。如何解决?

时间:2019-05-18 10:59:50

标签: c# asp.net-mvc entity-framework

我正在构建用于进行预约的ASP.NET MVC Web应用程序。当我从数据库中检索预订时,尽管数据库具有有效的日期值,但日期列在前端仍显示为Null

我有一个名为Booking的模型,其属性/字段如下。当我从数据库中检索名为Date的字段时,_DateNull字段都显示为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

0 个答案:

没有答案