DateTime 和 DateTimeOffset 转换问题

DateTime and DateTimeOffset Conversion Issues

我的 ModelState 总是被设置为无效,因为我的一个模型中的 CreatedAt 值总是以 Dates/############/ 返回,这导致空值。我想知道为什么会这样。 CreatedAt 是 DateTimeOffset。我相当确定它应该从另一个数据库 table.

中提取 DateTimeOffset 值

我试过将它转换为日期时间,创建一个新的 DateTimeOffset 并将其传入,然后只传递 DateTimeOffset.Now 以使其有效。 None 成功了。

public ActionResult EditSafetyIncidentPopUp([DataSourceRequest] DataSourceRequest request, SafetyIncidentViewModel sivm)
{
    if (sivm != null && ModelState.IsValid)
    {
        SafetyIncident si = new SafetyIncident
        {
            Id = sivm.Id,
            CreatedAt = new DateTimeOffset(sivm.CreatedAt),
            Description = sivm.Description,
            Type = sivm.Type,
            ProductionLineId = sivm.ProductionLineId,
            ProdLine = _productionLineService.Find(sivm.ProductionLineId)
        };

        _safetyIncidentService.Update(si);
    }

    return this.Json(new[] { sivm }.ToDataSourceResult(request,ModelState));}


public class SafetyIncidentViewModel
{
    public string Id { get; set; }
    [Required]
    [ReadOnly(true)]
    public DateTime CreatedAt { get; set; }
    [Required]
    public string Description { get; set; }
    [Required]
    [Range(0, 1, ErrorMessage = "Enter a valid type.")]
    public type Type { get; set; }
    [Display(Name = "Production Line")]
    [Required]
    public string ProductionLineId { get; set; }
    [Display(Name = "Production Line")]
    public ProductionLine ProdLine { get; set; }
}

我希望结果能够成功更新我的数据库。它目前只更新网格,然后无法将数据传递到数据库,因为 ModelState 无效。

更改您的视图模型以使用日期时间偏移量而不是 DateTime。那么就不需要转换了。