导航列表属性填充空对象(ID除外)

时间:2012-11-16 22:45:20

标签: json asp.net-mvc-3 jquery

这应该是一个简单的(但显然不适合我)。 我有一个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; }
}

任何帮助?

0 个答案:

没有答案