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。那么就不需要转换了。
我的 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。那么就不需要转换了。