以日期作为参数获取请求 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)
{
我尝试在 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)
{