我真的很棒。 我使用knockout来保存从前端到后端的数据。我想要做的是将敲除数组保存到c#
中的IEnumerable对象public class VDenuncia
{
public int IdDenuncia { get; set; }
public string Name{ get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public IEnumerable<VFiles> Files { get; set; }
}
如下所示,这是我的模型
public class VFiles
{
public int IdFile { get; set; }
public byte[] File { get; set; }
public string Extension { get; set; }
}
这是文件的模型。
首先我将文件保存到数据库并返回插入的ID,我想在VDenuncia中保存该ID,但不知道如何开发它。
我使用ajax转到JS转到C#但是当将observableArray转换为IEnumerable时没有得到C#中的任何对象
$.ajax({
type: 'POST',
url: 'Home/Save',
data: { denuncia: data },
async: true,
success: function (data) {
从HomeController保存操作
[HttpPost]
public async Task<JsonResult> Save(VDenuncia denuncia)
{
var manager = new DenunciaManager();
var result = await manager.SaveDenuncia(denuncia);
return new JsonResult
{
Data = result.Folio,
MaxJsonLength = int.MaxValue,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
这是数据的价值。
var data = {
Name: self.Name(),
LastName: self.LastName(),
FirstName: self.FirstName(),
Files: ({
IdFile: self.IdFile(),
File: self.File(),
Extension: self.Extension(),
})
};
SOLUTION:
给出的解决方案有效,但我意识到我正在使用数组,我只更改下一个数据:
Files: [{
IdFile: self.IdFile(),
File: self.File(),
Extension: self.Extension(),
}]
答案 0 :(得分:0)
您应该打开对象中的observable,然后将您的javascript对象字符串化为JSON。
使用ko.mapping模块轻松地解开你的javascript对象:
add_image_size()
然后在ajax请求中将类型设置为json,并使用var payload = ko.mapping.toJS(data); //unwrap your observables
将payload
转换为JSON,如下所示:
JSON.stringify(payload)