看起来我在ASP.NET MVC2项目中使用的JsonValueProviderFactory(来自Microsoft.Web.Mvc)是特定于文化的。
我从客户端发送此JSON:
{
"name": "Max",
"weight": "60.21"
}
JsonValueProviderFactory将JSON转换为此类:
public class User
{
public string Name { get; set; }
public double Weight { get; set; }
}
如果我目前的文化是CultureInfo.InvariantCulture,那么一切正常。但如果我明确地将我的文化设置为“ru-RU”,则用户的权重值将为0.0
好的,我可以根据客户的重量文化发送格式化值,例如:
{
"name": "Max",
"weight": "1,100.21" // it's just example, not my real weight :)
}
但在这种情况下,JsonValueProviderFactory无法解析权重,它将为零,尽管double.Parse(“1,100.21”,CultureInfo.CurrentCulture)可以正常工作。
我如何解决这个问题?
答案 0 :(得分:1)
如果weight
属性应该是double,请按原样发送,而不是字符串:
var model = {
"name": "Max",
"weight": 60.21
};
$.ajax({
url: '@Url.Action("someAction")',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(model),
success: function (result) {
alert(result);
}
});