【问题标题】:Posting Javascript Array To Controller Via AJAX通过 AJAX 将 Javascript 数组发布到控制器
【发布时间】:2016-03-28 19:23:51
【问题描述】:

我可以工作,但我无法在控制器端获取 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 列表不为空,但我没有进入控制器

【问题讨论】:

    标签: javascript ajax model-view-controller controller


    【解决方案1】:

    我猜这应该被推送到 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);
    }
    

    【讨论】:

      【解决方案2】:

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

      Job.JobItem = JobItem

      【讨论】:

        【解决方案3】:

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

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

        尝试删除“”:“”

        并且,请发布 JobItem 类定义。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-06-12
          • 2017-10-20
          • 2013-03-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多