以日期作为参数获取请求 Angular 8 (ts) + .NET Core

Get request with dates as parameter Angular 8 (ts) + .NET Core

我尝试在 get 请求中发送 2 个日期作为参数,但我只收到这个:

型号

    public class Dates
{
    public DateTime from { get; set; }
    public DateTime to { get; set; }
}

.net核心

 [HttpGet]
    [Route("main/exportToExcel")]
    public string ExportToExcel([FromQuery] Dates dates)
    {}

Html

  <p>
    <mat-form-field color="accent" appearance="fill">
      <mat-label>Data od</mat-label>
      <input formControlName="from" matInput [matDatepicker]="picker1">
      <mat-datepicker-toggle matSuffix [for]="picker1"></mat-datepicker-toggle>
      <mat-datepicker #picker1></mat-datepicker>
    </mat-form-field>

  </p>

  <p>
    <mat-form-field color="accent" appearance="fill">
      <mat-label>Data do</mat-label>
      <input formControlName="to" matInput [matDatepicker]="picker2">
      <mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
      <mat-datepicker #picker2></mat-datepicker>
    </mat-form-field>

  </p>
</form>

Angular

 let params = new HttpParams();
  params = params.append('from', this.datepipe.transform(this.addNewItemForm.get('from').value, 'yyyy-mm-dd'));
  params = params.append('to', this.datepipe.transform(this.addNewItemForm.get('to').value, 'yyyy-mm-dd'));
  console.log(params);

  this.http.get(this.baseURL + "main/exportToExcel/", { params })
    .subscribe(event => {

这是正确的方法吗?

您可以像这样轻松使用 JavaScript toISOString() 方法:

let date = new Date(this.form.value.date).toISOString();

这将为您提供日期作为时间戳,然后您可以将其发送到您的 API

但首先,您需要正确设置 formControlNname,然后发送值

好的,问题在于格式不正确。

  import * as moment from 'moment';

  var momentVariable = moment(this.addNewItemForm.get('from').value, 'MM-DD-YYYY');
  var from = momentVariable.format('YYYY-MM-DD');

  var momentVariable = moment(this.addNewItemForm.get('to').value, 'MM-DD-YYYY');
  var to = momentVariable.format('YYYY-MM-DD');


  let params = new HttpParams();
  params = params.append('from', from);
  params = params.append('to', to);


 this.http.get(this.baseURL + "main/exportToExcel/", { params, responseType: 'text' })
  .pipe(map((data: string) => data),
    catchError(this.errorHandler)
  );

c#

    [HttpGet]
    [Route("main/exportToExcel")]
    public string ExportToExcel([FromQuery] Dates dates)
    {