yqi*_*qit 2 asp.net asp.net-mvc-4 asp.net-web-api
我有一个Winform客户端,它向我的控制器发送一个json post请求,其日期时间值为格式dd/MM/yyyy,并且该调用返回状态代码400.
我试着添加:
<globalization uiCulture="fr" culture="fr-FR" />
Run Code Online (Sandbox Code Playgroud)
到我的web.config文件,但它仍然无法正常工作.
编辑:我还应该添加我无法控制客户端,我添加:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/mm/yyyy}")]
Run Code Online (Sandbox Code Playgroud)
我的模型没有结果
小智 10
有一个非常简单的解决方案.只需将CultureInfo添加到global.asax中的JsonSerializerSettings,方法Application_Start()即可.
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings =
new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.IsoDateFormat,
DateTimeZoneHandling = DateTimeZoneHandling.Unspecified,
Culture = CultureInfo.GetCultureInfo("fr-FR")
};
Run Code Online (Sandbox Code Playgroud)
如果您通过 JSON 发布此内容,那么您应该能够为您的日期格式创建一个 JSON.NET 转换器。
事实上,在研究这个答案时,我在 SO WebApi Json.NET 自定义日期处理上找到了这个完整的示例
显然,只需将 MyDateTimeConvertor 中的转换更改为使用当前区域性和您指定的格式即可。
DateTime.ParseExact(reader.Value.ToString(), "dd/mm/yyyy", CultureInfo.CurrentCulture);
Run Code Online (Sandbox Code Playgroud)
和
writer.WriteValue(((DateTime)value).ToString("dd/mm/yyyy"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22779 次 |
| 最近记录: |