将值从角度应用程序发布到.Net Core WebAPI时忽略时区

编程入门 行业动态 更新时间:2024-10-23 12:34:29
本文介绍了将值从角度应用程序发布到.Net Core WebAPI时忽略时区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我将以下JSON从我的Angular应用程序发布到.Net Core WebAPI:

{CompanyBillingHireRateId: 4, CompanyId: 44, AccountId: null, EquipmentId: 128, EffectiveDate: Sun Dec 29 2019 00:00:00 GMT+0200 (South Africa Standard Time)}

如您所见,EffectiveDate的值如下:EffectiveDate: Sun Dec 29 2019 00:00:00 GMT+0200 (South Africa Standard Time)

下面是我的.Net核心控制器方法:

[HttpPut("billing/hirerates/update")] public async Task<IActionResult> UpdateNewCompanyBillingHireRateAsync([FromBody] CompanyBillingHireRateViewModel model) { try { var success = await _companyFacade.UpdateCompanyBillingHireRates_Async(model).ConfigureAwait(false); if (success) return Created("", success); return StatusCode((int)HttpStatusCode.BadRequest); } catch (CustomException cEx) { await _customExceptionProcess.ProcessCustomException(cEx).ConfigureAwait(false); return StatusCode(cEx.StatusCode, new { Message = cEx.FriendlyMessage ?? "" }); } }

在我的.Net应用程序中,EffectiveDate被接收为:{2019/12/28 22:00:00 +00:00}

在我的Startup.cs中,我尝试将接口配置为忽略时区,并按原样保留接收到的日期值,并转换为.Net中对应的datetime,但失败。以下是我的启动,cs配置:

services.AddControllers().AddNewtonsoftJson(setup => { setup.SerializerSettings.ContractResolver = new DefaultContractResolver(); setup.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; setup.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat; setup.SerializerSettings.DateParseHandling = Newtonsoft.Json.DateParseHandling.None; setup.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local; });

如何配置接口忽略时区,只将JSON值作为字符串读取,并解析到从角度用户界面收到的对应日期?

推荐答案

以下是我为我的项目解决此问题所做的工作:

由于ANGLE在浏览器中运行,而您的浏览器使用local time,因此我相应地更改了API以处理此问题,如下所示:

services.AddControllers().AddNewtonsoftJson(setup => { setup.SerializerSettings.ContractResolver = new DefaultContractResolver(); setup.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; setup.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local; });

更多推荐

将值从角度应用程序发布到.Net Core WebAPI时忽略时区

本文发布于:2023-11-15 16:37:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1596155.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:应用程序   时区   角度   Net   WebAPI

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!