这应该是一个简单的(但显然不适合我)。 我有一个AJAX例程将我的所有数据以JSON格式发送到控制器。一切都很完美,模型对象属性(在控制器上)正确地填充了我从View发送的所有数据。除了其中一个属性是一个对象列表,并且从View中,我只发送应该填充列表的对象的ID。 发生的事情是Model对象的List属性正在填充只有ID信息的实例,而我需要它做的是使用View中发送的List中存在的ID来加载所有其他属性。
一些代码来说明:
// Creating Documento Json Object
var docs = { "IDDocumento": "" };
// Creating Lote Json Object
var lote = {
"IDLote": "",
"Numero": "",
"Documentos": []
};
// Set Lote's Values
lote.IDLote = $("#IDLote").val();
lote.Numero = $("#Numero").val();
$.each($('input[name="Documento"]:checked'), function (index, element) {
var temp = $(element).attr('id').replace('Documento_', '').trim();
// Set Documento individual Value
docs.IDDocumento = temp; // << HERE IM FILLING WITH THE DESIRED OBJECT ID
// adding to Lote.Documentos List Naviagtion Attribute
lote.Documentos.push(docs);
docs = { "IDDocumento": "" };
});
$.ajax({
url: '/Lote/Edit',
data: JSON.stringify(lote),
type: 'POST',
contentType: 'application/json;',
dataType: 'json',
success: function (result) {
if (result.Success == "1") {
window.location.href = "/Lote/Index";
}
else {
//Take care of the exception...
}
}
});
上述视图强类型的类是:
public class Lote
{
[Key]
public int IDLote { get; set; }
[Required]
[MaxLength(20)]
public string Numero {get;set;}
public List<Documento> Documentos { get; set; }
最后,Navigation属性对象的类类型为:
public class Documento
{
[Key]
public int IDDocumento { get; set; }
[Required]
[MaxLength(60)]
public string Nome { get; set; }
public List<Lote> Lotes { get; set; }
}
任何帮助?