【问题标题】:Typescript 2.0 pass Datetime parameter to WebApi controllerTypescript 2.0 将 Datetime 参数传递给 WebApi 控制器
【发布时间】: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


【解决方案1】:

这将对您有所帮助。它将支持所有的TS

像这样通过日期 currDate.toISOString()

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.toISOString() +
            "&mode=" + mode
            ;
        return this.http.get(url);
    }
}

【讨论】:

    猜你喜欢
    • 2016-05-08
    • 2015-08-11
    • 2018-07-14
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多