【发布时间】:2019-11-18 20:25:49
【问题描述】:
我有一个带有 Typescript 2.0 的 angular 2 应用程序,我需要将 datetime 参数从 typescript 传递给我的 web api 控制器。
但它不起作用,因为它将默认日期传递给控制器
这是我的角度控制器代码
this.profileService
.getAvailableConsultant(this.ignoreList,currentUser.providerId,new Date(),1)
.subscribe(result => {
}));
还有我的角度服务
import { Injectable, Inject } from '@angular/core';
import { Http, Headers, Response } from "@angular/http";
import { APP_CONFIG, IAppConfig } from '../app.config';
@Injectable()
export class ProfileService {
apiURL: string;
constructor(public http: Http, @Inject(APP_CONFIG) private config: IAppConfig) {
this.apiURL = config.apiEndpoint;
}
getAvailableConsultant(ignoreList: string, providerId: number, currDate: Date, mode: number) {
var url: string = this.apiURL + "UserProfile/GetAvailableConsultant?" +
"ignoreList=" + ignoreList +
"&providerId=" + providerId +
"&currdate=" + currDate +
"&mode=" + mode
;
return this.http.get(url);
}
}
这是 Web Api 控制器代码
[HttpGet]
[Route("GetAvailableConsultant")]
public UserProfileDto GetAvailableConsultant(string ignoreList, int providerId,DateTime currdate,int mode)
{
return _profileService.GetAvailableConsultant(ignoreList,providerId, currdate,mode);
}
通过了
1/1/0001 12:00:00 AM
作为控制器的 currDate
【问题讨论】:
-
什么不起作用?错误在哪里?在 Web Api 操作中?
currdate是否没有被正确解析? -
是的,它通过日期为 1/1/0001 12:00:00 AM
-
我明白了。尝试这个。在您的 Angular 服务中使用:
"&currdate=" + currDate.toISOString() + ...看看这是否有区别? -
日期是一种众所周知的跨语言序列化/反序列化困难的数据类型。希望
.toISOString()有所帮助,但如果没有,请使用 Fiddler 拦截对您服务器的传入调用,并确保日期字段以您的控制器可以反序列化的格式进行序列化。 -
@ArashMotamedi 它有效,但问题是它显示了错误的时间
标签: angular typescript datetime asp.net-web-api