首页 > 解决方案 > AJAX 调用将空值传递给控制器

问题描述

我正在尝试使用此 POST 类型的 AJAX 调用将数据发送到控制器,但它正在向控制器发送空值。通过此代码,我想在 Microsoft Dynamics 365 CRM 数据库中创建新记录。


    
            
            var formdata = new FormData();
            var rowCount = $(".newRow").length;
            var projectarray = [];
           
            var datearray = [];
            var amountarray = [];
            
            for (var i = 0; i < rowCount; i++) {
                
                projectarray[i] = $("#ProjectType_" + i).val();
               
                datearray[i] = $("#ClaimExpenseDate_" + i).val();
                amountarray[i] = $("#Amount_" + i).val();
               
                

            }
            formdata.append("projectarray", projectarray);
           
            formdata.append("datearray", datearray);
            formdata.append("amountarray", amountarray);
           
            
           
            $.ajax({
                url: "@Url.Action("SetClaimDetails", "Claim")",
                type: "POST",
               
                data: formdata,
                
                processData: false,
               
                contenttype: false,
                    
                    success: function (data) {
                        debugger;
                        
                        window.location.href = "ess/claim";
                        
                        alert("Submit Successful!");
                       

                 
                    },
                    error: function (err) {
                        
                        
                        window.location.href = "";
                        alert("Submit Failed!");
                       
                    }
               });
           
        

这是我的控制器方法,它存储空值而不是 AJAX 调用传递的值。因此,我无法在数据库中创建新记录。

public ActionResult SetClaimDetails(string projectarray, string datearray, string amountarray)
        {
            try
            {
               
                Entity item = new Entity("bam_expenseclaims");
               

                item["bam_expdate"] = Convert.ToDateTime(datearray);

                item["bam_amount"] = amountarray;

                item["bam_project"] = new EntityReference("new_project", Guid.Parse(projectarray));
                
                


                globalService.Connection.Create(item);

            }
            catch (Exception ex)
            {
                XmlConfigurator.Configure();
                ILog log = LogManager.GetLogger("TechnicalErrorAppender");
                log.Error(string.Empty);
                throw ex;
            }
            
            return View(Constant.CLAIMPATH);

        }

标签: javascriptc#ajaxasp.net-mvc

解决方案


推荐阅读