通过AJAX向控制器发布Javascript数组

Posting Javascript Array To Controller Via AJAX

本文关键字:Javascript 数组 控制器 AJAX 通过      更新时间:2023-09-26

我可以接受作业,但不能在控制器端获得jobItem。我检查了JobItem列表不是空的,但不上控制器

 var Job = { "Name": "", "Date": "", "Description": "", "AuthPersonId": "", "ClientId": "", "DealerId": "", "JobItem": [] };
    var JobItem = { "": "", "ItemId": "", "Quantity": "" };

    Job.Name = $("#Name").val();
    Job.Date = $("#Date").val();`enter code here`
    Job.Description = $("#Description").val();
    Job.AuthPersonId = $("#AuthPersonId").val();
    Job.ClientId = $("#clientName").attr("data-id");
    Job.DealerId = $("#dealerName").attr("data-id");
    alert(Job.ClientId + "scas" + Job.DealerId);
    for (var w = 0; w < Urunler.length; w++) {
        JobItem.ItemId = $(".I-" + w).attr("data-ItemId");
        JobItem.Quantity = $(".I-" + w).attr("data-urunAdet");
        alert(JobItem.ItemId + "--" + JobItem.Quantity)
       console.log(JobItem)
    }

    $.ajax({
        url: '/Jobs/Save',
        data: JSON.stringify(Job),
        type: 'POST',
        contentType: 'application/json;',
        dataType: 'json',
        traditional : true,
        success: function (result) {
            if (result.Success == "1") {
                window.location.href = "/Company/index";
            }
            else {
                alert(result.ex);
            }
        }
    });
public JsonResult Save(Job Job)
    {
        try
        {
            if (ModelState.IsValid)
            {
                db.Job.Add(Job);
                db.SaveChanges();
                JobItem jbitm=new JobItem();
                //jbitm.ItemId=Job.JobItem.First().ItemId;
                //db.JobItem.Add(Job.JobItem.ToList())
                return Json(new { Success = 1});
            }
        }
        catch (Exception ex)
        {
            return Json(new { Success = 0, ex = ex.Message.ToString() });
        }
        return Json(new { Success = 0, ex = new Exception("Unable to save").Message.ToString() });
    }

我可以接受这份工作,但不能在控制器端获得这份工作。我检查了JobItem列表不是空的,但ı不要进入控制器

我想这应该推送到JobItems?

所以也许可以改变这个:

alert(Job.ClientId + "scas" + Job.DealerId);
for (var w = 0; w < Urunler.length; w++) {
    JobItem.ItemId = $(".I-" + w).attr("data-ItemId");
    JobItem.Quantity = $(".I-" + w).attr("data-urunAdet");
    alert(JobItem.ItemId + "--" + JobItem.Quantity)
   console.log(JobItem)
}

至:

for (var w = 0; w < Urunler.length; w++) {
    var newJobItem = {
        ItemId: $(".I-" + w).attr("data-ItemId"),
        Quantity: $(".I-" + w).attr("data-urunAdet");
    };
    Job.JobItem.push(newJobItem);
}

为什么使用空字符串作为属性名称?

var JobItem={":","ItemId":","Quantity":"};

尝试删除":"

并且,请发布JobItem类定义。

您将Job.JobItem初始化为null,然后初始化JobItem,但我看不到:

Job.JobItem=作业项目