1

我在.net 服务器端开发中发现了一个问题。

.net 方法如下:

<Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)> Public Function fn_save(ByVal data As String)

前端js会调用这个方法

fn_save(JSON.stringify(cell.getData()))

fn_save 方法只接收一个字符串。所以我必须对行数据进行字符串化。它应该可以正常工作。

但是,如果字段中没有值(没有编辑或清除等),则该字段值将未定义,如下所示。

JSON.stringify({content: undefined}); // return {} after stringify

所以对于这个场景,我必须遍历对象并将 undefined 更改为空字符串或其他内容。

我应该这样做吗?或者默认值将更改为null而不是undefined?感谢您提前回复。

4

2 回答 2

0

将值设置为 undefined 在 JSON 中无效,这就是为什么在对对象进行字符串化时它会在对象中丢失。

如果您将数据作为对象数组,则可以直接将其传递到 Tabulator 中,而无需首先对其进行字符串化

如果行数据中缺少一列,Tabulator 只需将其设置为空值,并继续运行,它不会导致表格呈现出现任何问题

于 2018-11-22T21:49:50.403 回答
0

您可以尝试使用如下所示的循环,这将是克服此限制的简单方法

var string = 
JSON.stringify(EditedData,function(k, v){return v === undefined ? null : v;});

这应该可以正常工作,并且您的后端将接受任何空白字段

于 2019-01-11T12:35:47.027 回答