【发布时间】:2018-10-26 18:25:15
【问题描述】:
我正在将数据发布到通过敲除字符串化的控制器:
var data = ko.toJSON(viewModel);
$.ajax({
type: 'POST',
url: '@Url.Action("Action")',
data: { data: data },
dataType: 'json'
....
})
然后在服务器端,我尝试使用 JsonConvert 反序列化数据。
var viewModel = JsonConvert.DeserializeObject<ViewModel>(data,
new JsonSerializerSettings
{
DateTimeZoneHandling = DateTimeZoneHandling.Local,
DateFormatHandling = DateFormatHandling.IsoDateFormat
});
如果数据包含空值(序列化为“NaN”),则会失败,如下所示:
"MyField":"NaN"
没有空值,它工作正常。
我尝试将 NullValueHandling = NullValueHandling.Include/Ignore 添加到序列化程序设置中,均未成功。
【问题讨论】:
-
你的 ViewModel 类是什么样的?
-
那不发送
NaN怎么样?这似乎是明智的解决方案,而不是试图处理它们。 -
嗨大卫,我试过这个,不知何故没有工作,将再次尝试使其工作
-
为什么将 null 值序列化为 NaN 而不是 null?
-
另外,这是您需要的吗? Removing NaN values in deserialization Web API 2 C#.
标签: c# asp.net-mvc knockout.js json.net