控制器在使用 ajax Post 后返回 null

我创建了一个 ajax Post,它针对我的控制器中名为 edit 的操作方法,但我面临的问题是没有任何值被设置为空值。


应该发生的是,在“.save-user”按钮上单击它应该然后使用 ID 获取值并将它们存储到将在 JSON.stringify 方法中使用的局部变量。


我是 ajax 和 jquery 的新手,所以任何帮助或指导将不胜感激。


我的提交按钮:


@using(Html.BeginForm("Edit", "LansingMileage", FormMethod.Post))

                {

                    <button class="save-user edit-mode" type="submit"name="Save">Save</button>

                }

我的 JQuery/Ajax:


 $('.save-user').on('.click', function saveClick() {



                var expense = $("#expense").val();

                var travel = $("#travel").val();

                var trip = $("#trip").val();

                var newRecords = jQuery.makeArray(expense, travel,trip);


                var dataToPost = JSON.stringify({ methodParam: newRecords });


                $.ajax({

                    type: "POST",

                    url: "/LansingMileage/Edit",

                    contentType: "application/json; charset=utf-8",

                    datatype: 'JSON',

                    data: dataToPost,

                    traditional: true

                });

控制器:


public ActionResult Edit([Bind(Include = "ExpMonthYr,TripType,TravelDate")]List<LansingMileage> methodParam)

        {



            if (ModelState.IsValid)

            {

                    try

                    {

                        db.Entry(methodParam).State = System.Data.Entity.EntityState.Modified;

                        db.SaveChanges();

                    }

                    catch (Exception ex)

                    {


                    }

                return RedirectToAction("Index");

            }


            return View(methodParam);

        }


潇潇雨雨
浏览 216回答 1
1回答

隔江千里

编辑:首先,您需要修复newRecords变量的构造方式。我认为问题在于您对 jquery.makeArray 的使用。尝试在 Javascript 中创建一个对象,其键与 C# 对象的属性匹配。给它适当的值,然后将该对象推送到数组。这应该可以解决您的问题,因为现在您的控制器需要一个列表(用 javascript 术语来说是一个数组)。您传递给 stringify 方法的是一个对象,该对象具有一个值为数组的键,而您应该只是将数组字符串化或发送数组以匹配您的控制器参数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript