У меня есть функция AJAX, которая выглядит так
$.ajax({
type: "POST",
url: "@IGT.baseUrl/JODetails/SpecialOrderSelection",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ allParts: array }),
dataType: "json",
traditional: true,
success: function () {
alert('Success!');
},
error: function () {
alert('Error! ');
}
});
Массив не отправляется моему методу, который выглядит так
public ActionResult SpecialOrderSelection(ItemViewModel model, ItemPartViewModel[] allParts)
{
if (ModelState.IsValid)
{
JobOrder jobOrder = db.JobOrders.Find(model.Id);
if (jobOrder == null)
{
return HttpNotFound();
}
ViewBag.JobOrderID = jobOrder.ID;
TempData["model"] = model;
return RedirectToAction("SpecialOrderSummary", new { id = model.Id });
}
return View(model);
}
Вот мой itemViewModel
public class ItemViewModel
{
[Required]
public int Id { get; set; }
[Required]
public int JobId { get; set; }
public string ItemId { get; set; }
public string ItemName { get; set; }
public string MFGNumber { get; set; }
public IList<ItemPartViewModel> Parts { get; set; }
}
И вот моя модель ItemPartView
public class ItemPartViewModel
{
[Required]
public int ID { get; set; }
public int ItemID { get; set; }
public string PartID { get; set; }
public string MFGNumber { get; set; }
public string PartName { get; set; }
public float QtyInItem { get; set; }
public float Qty { get; set; }
public bool MoveAll { get; set; }
public float OnHand { get; set; }
public float OnWorkOrder { get; set; }
public float Committed { get; set; }
public float FSTK { get; set; }
// This is the additional property to contain what user picks
public PartActionType SelectedActionType { get; set; }
}
allParts возвращается как NULL (я подтвердил массив как данные в нем из журнала консоли), а страница просмотра отвечает Ошибка!" сообщение еще до того, как код будет запущен методом POST.
Почему это?