我有以下 View 模型:
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>();
}
和以下 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 });
}
以及以下 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 在我的模型中运行良好,但列表为空。我在这里做错了什么?
最佳答案
我明白了。该行:
public List<CheckListInfo> CheckListInfos = new List<CheckListInfo>();
应该是
public List<CheckListInfo> CheckListInfos { get; set; }
更改此设置即可修复它。
关于jquery - 使用 ASP.Net MVC 3/jQuery ajax 传递的列表为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12029661/