使用ASP.Net MVC 3 / jQuery ajax传递List为空
我有以下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 CheckListInfos = new List(); }
和以下控制器:
[HttpPost] public ActionResult Update(int ID, AddEditWorkOrderViewModel model) { if (ModelState.IsValid) { BusinessLogic.WorkOrders blWorkOrders = new BusinessLogic.WorkOrders(); WorkOrder workOrder = blWorkOrders.GetWorkOrder(ID); Mapper.CreateMap(); Mapper.Map(model, workOrder); blWorkOrders.UpdateWorkOrder(workOrder); return Json(new { success = true }); } return Json(new { success = false }); }
和以下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) });
ID和WorkOrderNumber在我的模型中正常运行,但List是空的。 我在这做错了什么?
我想到了。 这条线:
public List CheckListInfos = new List ();
本来应该
public List CheckListInfos { get; set; }
改变这个固定它。