“值”应该是 Kendo Angular DatePicker 中有效的 JavaScript Date 实例

2024-03-29

kendo DatePicker 的绑定出现错误。

“值”应该是有效的 JavaScript Date 实例

我在 asp core 中获取学生的 Web api 是:

    [HttpGet, Route("/api/master/{id}")]
    public JsonResult GetStudentById(int id)
    {
        return Json(new { id = 1, RegisterDate = DateTime.Now });
    }

它返回:

{"id":1,"registerDate":"2018-05-01T13:23:35.1229748+04:30"}

最后在我的角度分量中是:

student: Student = new Student();
constructor() { }

ngOnInit() {
   this.http
       .get(`http://localhost:58824/api/master/${10}`, { headers: this.setHeader() })
       .subscribe(response => { this.student = response; });
}

view :

<form novalidate #form="ngForm" (submit)="save(form)">
   <label for="birthDate">Date</label>
   <kendo-datepicker [format]="'dd-MM-yyyy'" name="registerDate" [(ngModel)]="student.registerDate"></kendo-datepicker>
</form>

有错误:“值”应该是有效的 JavaScript Date 实例

不用说,我已将 DateInputsModule 添加到 app.module 中的导入数组中 我该如何修复它?


此配置从序列化数据中删除时区 (+04:30):

services.AddMvc()  
       .AddJsonOptions(options =>  
       {  
         options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Unspecified;  // Treat as a local time if a DateTime is being converted to a string.
       });  

或者尝试以这种方式指定 DateTimeFormat 并通过将 DateTimeStyles 设置为 AdjustToUniversal 使其自动将日期调整为 UTC:

services.AddMvc()
    .AddJsonOptions(options =>
    {
        var settings = options.SerializerSettings;
        var dateConverter = new IsoDateTimeConverter
        {
            DateTimeStyles = DateTimeStyles.AdjustToUniversal,
            DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ssK"
        };
        settings.Converters.Add(dateConverter);
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“值”应该是 Kendo Angular DatePicker 中有效的 JavaScript Date 实例 的相关文章

随机推荐