通过的列表是空的。净MVC 3 / jQuery ajax

时间:2021-04-13 03:19:16

I have the following ViewModel:

我有以下视图模型:

public class CheckListInfo
{
    public int CheckListQuestionID { get; set; }
    public string QuestionText { get; set; }
    public bool Value { get; set; }
}

public class AddEditWorkOrderViewModel
{
    [Display(Name = "Work Order ID")]
    public int ID { get; set; }

    [Display(Name = "Work Order Number")]
    public string WorkOrderNumber { get; set; }

    public List<CheckListInfo> CheckListInfos = new List<CheckListInfo>();
}

and the following controller:

和下面的控制器:

[HttpPost]
public ActionResult Update(int ID, AddEditWorkOrderViewModel model)
{
    if (ModelState.IsValid)
    {
        BusinessLogic.WorkOrders blWorkOrders = new BusinessLogic.WorkOrders();
        WorkOrder workOrder = blWorkOrders.GetWorkOrder(ID);

        Mapper.CreateMap<AddEditWorkOrderViewModel, DataModels.WorkOrder>();
        Mapper.Map(model, workOrder);

        blWorkOrders.UpdateWorkOrder(workOrder);

        return Json(new { success = true });
    }

    return Json(new { success = false });
}

and the following jQuery:

和下面的jQuery:

var checkListQuestionInfos = new Array();
var checkListQuestion = { CheckListQuestionID: 1, QuestionText: 'Test1', Value: true };
checkListQuestionInfos.push(checkListQuestion);

var data = {
    WorkOrderNumber: $("#WorkOrderNumber").val(),
    CheckListInfos: checkListQuestionInfos
}

$.ajax({
    url: '@Url.Action("Update", new { id = @Model.ID })',
    type: 'POST',
    async: false,
    contentType: "application/json; charset=utf-8", 
    data: JSON.stringify(data)
});

The ID and WorkOrderNumber is coming through just fine in my model, but the List is empty. What am I doing wrong here?

ID和WorkOrderNumber在我的模型中通过得很好,但是列表是空的。我在这里做错了什么?

1 个解决方案

#1


3  

I figured it out. The line:

我想出来。线:

public List<CheckListInfo> CheckListInfos = new List<CheckListInfo>();

should have been

应该是

public List<CheckListInfo> CheckListInfos { get; set; }

Changing this fixed it.

改变固定它。

#1


3  

I figured it out. The line:

我想出来。线:

public List<CheckListInfo> CheckListInfos = new List<CheckListInfo>();

should have been

应该是

public List<CheckListInfo> CheckListInfos { get; set; }

Changing this fixed it.

改变固定它。