从ajax发送时动作参数获取值为null是可以的
Posted
技术标签:
【中文标题】从ajax发送时动作参数获取值为null是可以的【英文标题】:Action parameter getting value null while sending it from ajax is ok 【发布时间】:2021-12-14 03:52:03 【问题描述】:我在 ASP.NET Core 中有一个问题,通过使用 jQuery ajax 发送的动作参数问题是从 ajax 发送的数据是可以的,但是在动作参数中,它变成了 null。
sn-p的代码是这样的
jQuery ajax 代码就像
function SaveOrderData()
alert("start1");
var rowitem = "";
// var OrderList = [];
var OrderList = new Array();
$("#mytable tr").each(function ()
var Order = ;
var self = $(this);
Order.OSRC = self.find("td:eq(0)").text().trim();
Order.ICOD = self.find("td:eq(3)").text().trim();
Order.TRCD = self.find("td:eq(4)").text().trim();
Order.QNTY = self.find("td:eq(5)").text().trim();
Order.RATE = self.find("td:eq(6)").text().trim();
Order.ARAT = self.find("td:eq(7)").text().trim();
Order.UNIT = $("#DDUNIT").val();
Order.DVCD = $("#DDDVCD").val();
Order.DBCD = $("#DDSALMAN").val();
Order.ORDN = $("#TXTORDN").val();
Order.PCOD = $("#DDPCOD").val();
Order.TXCD = $("#DDTXCD").val();
Order.AGCD = $("#DDAGCD").val();
Order.ORDT = $("#TXTORDT").val();
Order.PORD = $("#TXTPORD").val();
OrderList.push(Order); // add order object to list object
);
alert(JSON.stringify(OrderList));
$.ajax(
url: "@Url.Action("SaveOrder", "SaleOrder")",
type: "GET",
// data: JSON.stringify(OrderList),
data: pendingTestResult: OrderList ,
contentType: "application/json",
dataType: "json",
success: function (response)
if (response == true)
// // ShowMsn("Order have been saved successfully."); // show success notification
// // ClearForm(); //clear form fields
// $('#mytable').empty(); // clear table items
// // CheckSubmitBtn(); // disable submit button
// else
// // ShowMsn("An error has ocurrer while processing the Transaction.");
);
;
控制器方法是
public JsonResult SaveOrder(List pendingTestResult)
foreach (ORDMAN ordman in pendingTestResult)
_db.ORDMAN.Add(ordman);
_db.SaveChanges();
bool Result = true;
return Json(Result);
我根据这个答案尝试了..但没有工作 附文件 enter image description here
Parameter Null
【问题讨论】:
您需要在 AJAX 数据和 C# 方法中使用相同的参数名称。您能否尝试在您的 C# 方法中使用 pendingTestResult 而不是 OrderList。 【参考方案1】:由于要传递json类型的数据给action,可以尝试在ajax中使用POST
请求:
js:
function SaveOrderData()
alert("start1");
var rowitem = "";
// var OrderList = [];
var OrderList = new Array();
$("#mytable tr").each(function ()
var Order = ;
var self = $(this);
Order.OSRC = self.find("td:eq(0)").text().trim();
Order.ICOD = self.find("td:eq(3)").text().trim();
Order.TRCD = self.find("td:eq(4)").text().trim();
Order.QNTY = self.find("td:eq(5)").text().trim();
Order.RATE = self.find("td:eq(6)").text().trim();
Order.ARAT = self.find("td:eq(7)").text().trim();
Order.UNIT = $("#DDUNIT").val();
Order.DVCD = $("#DDDVCD").val();
Order.DBCD = $("#DDSALMAN").val();
Order.ORDN = $("#TXTORDN").val();
Order.PCOD = $("#DDPCOD").val();
Order.TXCD = $("#DDTXCD").val();
Order.AGCD = $("#DDAGCD").val();
Order.ORDT = $("#TXTORDT").val();
Order.PORD = $("#TXTPORD").val();
OrderList.push(Order); // add order object to list object
);
alert(JSON.stringify(OrderList));
$.ajax(
url: "@Url.Action("SaveOrder", "SaleOrder")",
type: "POST",
data: JSON.stringify(OrderList),
contentType: "application/json",
dataType: "json",
success: function (response)
if (response == true)
// // ShowMsn("Order have been saved successfully."); // show success notification
// // ClearForm(); //clear form fields
// $('#mytable').empty(); // clear table items
// // CheckSubmitBtn(); // disable submit button
// else
// // ShowMsn("An error has ocurrer while processing the Transaction.");
);
;
行动:
[HttpPost]
public IActionResult SaveOrder([FromBody]List<Order> OrderList)
foreach (ORDMAN ordman in pendingTestResult)
_db.ORDMAN.Add(ordman);
_db.SaveChanges();
bool Result = true;
return Json(Result);
【讨论】:
以上是关于从ajax发送时动作参数获取值为null是可以的的主要内容,如果未能解决你的问题,请参考以下文章