Проблемы преобразования DateTime и DateTimeOffset - PullRequest
0 голосов
/ 21 июня 2019

Мой ModelState всегда устанавливается в недопустимое значение, поскольку значение CreatedAt в одной из моих моделей всегда возвращается как Dates / ############ /, что приводит к нулевому значению.Мне интересно, почему это происходит.CreatedAt - это DateTimeOffset.Я совершенно уверен, что он должен извлекать значение DateTimeOffset из другой таблицы базы данных.

Я попытался привести его к datetime, создать новый DateTimeOffset и передать его, а просто передать DateTimeOffset.Now, чтобы просто получить егобыть действительным.Ни один не сработал.

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 недопустим.

1 Ответ

0 голосов
/ 21 июня 2019

Измените модель представления, чтобы использовать смещение даты и времени вместо DateTime. Тогда нет необходимости в преобразовании.

...