我有这个对象
{
"Data1": 1,
"Data2": "some string",
"Data3": [
{
"ID": 0,
"Name": "some name",
"SomeArray": []
},
{
"ID": 0,
"Name": "another name",
"SomeArray": [
"DataA": 0,
"DataB": "some data again"
]
}],
"Data4": "some string again"
}
它将在控制器中接收的模型是这样的:
public class Data
{
public int Data1 { get; set; }
public string Data2 { get; set; }
public List<AnotherClass> Data3 { get; set; }
public string Data4 { get; set; }
}
public class AnotherClass
{
public int ID { get; set; }
public string Name { get; set; }
public List<DataList> SomeArray { get; set; }
}
public class DataList
{
public int DataA { get; set; }
public string DataB { get; set; }
}
要设置的数据Data3
来自一个表,其中从模式弹出窗口中检索新输入并填充到表中。SomeArray
数据来自一个下拉菜单,该下拉菜单使用Select2
工具在下拉菜单中设置多个选项。
这个想法是,一旦用户单击“保存”,它将获取所有数据,包括表中的数据并形成这个 JSON 对象。从这个对象,我想把它转换成FormData
. 但是,当它迭代到 时Data3
,即使我将其字符串化,它也不会将其转换为对象数组。我也试过这个Convert JS Object to form data但没有成功。
这是我到目前为止所做的:
var details = GetDetails(); // This contains `Data1`, `Data2` and `Data4`
var data3 = GetData3FromTable(); // This contains the list of `Data3`
var result = new FormData();
for (var key in details) {
result.append(key, details[key]);
}
result.append("Data3", JSON.stringify(data3));
result.append("UploadFile", $("#upload")[0].files[0]);
// do ajax put or post after this line
是否有任何 jquery 或 javascript 插件可用于将此对象转换为FormData
?或者有没有其他方法可以将其转换为FormData
?