【发布时间】:2015-02-09 07:50:18
【问题描述】:
我有一个供内部使用的 MVC Web-API 应用程序。我有一些带有表单和数字字段的页面。我需要在德国计算机上安装它,用户将只是德国人。在德国,他们写“3,5”而不是“3.5”(带逗号)。
在 IIS 配置中,文化是“不变文化”,并且由于计算机是德语 - 本地化是“de-DE”。
当用户在字段中写入“3,5”时 - 我可以在 firebug 中看到“3,5”是以 JSON 格式发送的,但服务器将其获取为“35”。
我可以在服务器端处理它吗? (我不想更改 json,因为我需要在每个字段和页面中都这样做)
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
public class ItemsController : ApiController, IDisposable
{
[Authorize(Roles = "Admin")]
[HttpPost]
public HttpResponseMessage UpdateItem(ItemViewModel itemVM)
{
// JSON data sent data.NumProp1 = "3,5"
// itemVM.NumProp1 contains "35" instead of "3.5"
}
}
【问题讨论】:
-
JSON 数字不得本地化。您应该在客户端解释用户输入并发送一个实际数字(使用
.),或者将用户输入包含为字符串并在服务器端解释它。
标签: c# json formatting cultureinfo culture