gpt4 book ai didi

javascript - 使用 ajax Post 后 Controller 返回 null

转载 作者:行者123 更新时间:2023-11-30 19:16:44 25 4
gpt4 key购买 nike

我创建了一个 ajax Post 以我的 Controller 中名为 edit 的操作方法为目标,但我面临的问题是没有任何值被设置为 null。

应该发生的是,在“.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
});

Controller :

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);
}

最佳答案

编辑:首先,您需要修复newRecords 变量的构建方式。我认为问题在于您对 jquery.makeArray 的使用。尝试在 Javascript 中创建一个对象,其键与 C# 对象的属性相匹配。给它适当的值,然后将该对象推送到一个数组。

这应该可以解决您的问题,因为现在您的 Controller 需要一个列表(在 JavaScript 术语中是一个数组)。

你传递给 stringify 方法的是一个对象,它有一个值为数组的键,而你应该只是字符串化或发送数组以匹配你的 Controller 参数。

关于javascript - 使用 ajax Post 后 Controller 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57914036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com