我创建了一个 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); }
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
编辑:首先,您需要修复newRecords
变量的构造方式。我认为问题在于您对 jquery.makeArray 的使用。尝试在 Javascript 中创建一个对象,其键与 C# 对象的属性匹配。给它适当的值,然后将该对象推送到数组。
这应该可以解决您的问题,因为现在您的控制器需要一个列表(用 javascript 术语来说是一个数组)。
您传递给 stringify 方法的是一个对象,该对象具有一个值为数组的键,而您应该只是将数组字符串化或发送数组以匹配您的控制器参数。
添加回答
举报
0/150
提交
取消