将日期传递给控制器​​日期时间会添加随机时间戳

时间:2017-12-05 15:45:47

标签: c# json asp.net-mvc angular

我是Angular的新用户,并尝试将日期从角度组件传递到MVC API(C#)日期时间。看起来我没有在API方法中获得默认时间戳上午12:00。让我知道我做错了什么。

客户端型号:

export class TestClass {
    constructor(
        public ctyName: string = '',
        public stateName: string = '',
        public zipCode: string = '',
        public country: string = '',
        public effectiveDate: Date = null

    ) {
    }
}

服务模式

public class TestClass 
{          
    public string CityName { get; set; }   
    public string StateName { get; set; }    
    public string ZipCode { get; set; }    
    public string Country { get; set; }    
    public DateTime EffectiveDate: { get; set; }        
}

客户端方法 - 分配

var month = '1';
var day = '1';
var year = '2016';
effectiveDate = new Date(year, month - 1, day);

Api方法

[HttpPost("[action]/{id}")]
public PostResult UpdateData(string id, [FromBody]TestClass testClass)
{
}

我在API

收到的价值

2016-01-01 05:00:00.000

感谢您的时间

1 个答案:

答案 0 :(得分:0)

请尝试更改此行:

effectiveDate = new Date(year, month - 1, day);

到此:

effectiveDate = new Date(year, month - 1, day, 0, 0, 0, 0);

这应该对你有帮助。

案例是JS Date构造函数的签名是:

new Date(year, month, day, hours, minutes, seconds, milliseconds);

在您的情况下,您只需指定年,月和日。但是,当前时间会自动填充小时,分钟和秒钟。

选中此项以获取更多参考:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date