c# - 将日期发布到 Asp.net 核心 API
问题描述
我正在使用 asp.net 核心 web API 2.1。我正在向邮递员发送请求。我正在发送“10.12.2019”。但是,我从我的 controller.cs 得到“12.10.2019”。我该如何解决这个错误?
我的控制器.cs
[HttpPost]
public void MyMethod([FromBody]MyClass myClass)
{
}
public class MyClass {
public DateTime myDate { get; set; }
}
我的请求
http://localhost:5012/api/MyController/MyMethod
我的 json
{
"myDate": "10.12.2019"
}
我的启动.cs
services.Configure<RequestLocalizationOptions>(options =>
{
options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("tr-TR");
options.SupportedCultures = new List<CultureInfo> { new CultureInfo("tr-TR") };
});
解决方案
试试这个 JsonConvert 属性来自定义日期
public class MyDateTimeConverter : IsoDateTimeConverter
{
public MyDateTimeConverter()
{
base.DateTimeFormat = "dd-MM-yyyy";
}
}
并将您的财产的属性用作
public class MyClass
{
[JsonConverter(typeof(MyDateTimeConverter))]
public DateTime MyDate { get; set; }
}
这将自动将正文转换为预期的格式。
如果您希望所有日期时间属性都采用这种格式,请在您的startup.cs
services.AddMvc()
.AddJsonOptions(options =>
{
options.SerializerSettings.DateFormatString= "dd-MM-yyyy";
});
但是您必须确保为该属性提供的所有值都应采用提供的格式。希望这可以帮助 :)
推荐阅读
- java - 以编程方式禁用“音量键快捷键”
- javascript - React-final-form 在某些表单字段上触发验证
- javascript - 手动在自动优化插件中加载 JS
- linux - netstat 进程 ID 接收的数据包数
- c# - 使用 AND、OR、* 过滤基于标签的大字符串集合
- python - 如何在 cross_validate 之后导出/保存拟合模型并稍后在 pandas 上使用
- kubernetes - Helm 图表的模板
- python - 无法连接到部署在 kubernetes 集群上的服务器
- flutter - TextEditingController 与 OnChanged
- node.js - Openlayers 无法从 RestfulAPI(节点)显示 GeoJSON Vectorlayer