Неверный запрос HTTP 400 Неожиданный символ при синтаксическом анализе значения Дата

У меня возникли проблемы с публикацией даты из моего углового приложения в мой веб-API ASP.net. Я записал данные в консоль и получаю следующую ошибку:

Ошибка ответа API

Не совсем уверен, что не так с данными о дате, которые я пытаюсь опубликовать. Это в неправильном формате? Я использую Angular datetimepicker.

Модель с полем DateFound, которое, как мне кажется, вызывает проблему:

export class Nclog {

id: number;
DateFound?:  Date;
LocationFound: string;
NCTypeId: number;
NCDescription: string;
ActionTaken: string;
CauseOfNc: string;
InvestigatedBy: string;
InvestigationStart?: Date;
InvestigationFinish?: Date;
CorrectiveAction: string;
AddressRootCause: string;
PreventsReoccurrance: string;
Valid: boolean;
ImplementedEffective: boolean;
FollowUpComments: string;
Effective: boolean;
EffectivenessComments: string;
Signed: string;
Date?: Date;
NCStatus: number;
NCNumber: number;
NotedBy: string;
DateTest: Date;
}

Сервис.тс

import { Injectable } from '@angular/core';
import { Nclog } from './nclog.model';
import { HttpClient } from '@angular/common/http';

@Injectable({
  providedIn: 'root'
})
export class NclogService {

  nclogFormData: Nclog;
  list: Nclog[];
  readonly rootURL = "https://localhost:44322/api"

  constructor(private http: HttpClient) { }

  postLog(nclogFormData: Nclog) {
    console.log(JSON.stringify(nclogFormData));
    nclogFormData.id = 0;
    return this.http.post(this.rootURL+'/NCLog', nclogFormData);
  }

  refreshList(){
    this.http.get(this.rootURL+'/NCLog')
    .toPromise().then(res => this.list = res as Nclog[]);
  }

HTML

<div class="form-group col-md-6">
      <label>Date NC Found</label>
      <input class="form-control" placeholder="yyyy-mm-dd"
       name="DateTest" #DateFound="ngModel" [(ngModel)]="service.nclogFormData.DateFound" ngbDatepicker #d="ngbDatepicker">
      <div class="input-group-append">
      <button class="btn btn-outline-secondary calendar" (click)="d.toggle()" type="button"></button>
</div>

person Taylor-byte    schedule 15.06.2020    source источник
comment
Я использую этот средство выбора даты для даты в моем интерфейсе ng-bootstrap .github.io/#/components/datepicker/   -  person Taylor-byte    schedule 16.06.2020


Ответы (1)


Итак, ответ на этот вопрос заключался в том, что формат средства выбора даты был неправильным для API.

Поэтому я использовал moment.js для форматирования поля даты перед его публикацией.

 postLog(nclogFormData: Nclog) {
    console.log(JSON.stringify(nclogFormData));
    nclogFormData.id = 0;
    nclogFormData.DateFound = moment().format();
    return this.http.post(this.rootURL+'/NCLog', nclogFormData);

  }
person Taylor-byte    schedule 16.06.2020