我正在嘗試使用 $.ajax 從視圖中發送字串化陣列,但我不斷在控制器中獲取 null。這是控制器功能:
[HttpPost]
public void SaveColumnsToDb(string data)
{
var a = data;
}
控制臺輸出:
str: (2) ['SerialNumber', 'MeasurementUnit']
JSON str: ["SerialNumber","MeasurementUnit"]
整體功能:
$("#popup-saveBtn").click(function () {
var columns = [];
var parentElement = document.getElementById("tableColumns");
var childElements = parentElement.querySelectorAll("input[type=checkbox]");
// If checkbox is checked, push value to array
for (i = 0; i < childElements.length; i ) {
if (childElements[i].checked) {
columns.push(childElements[i].value);
}
}
/*var strColumns = columns.join(";");*/
console.log("str: ", columns);
console.log("JSON str: ", JSON.stringify(columns));
// Send data to AjaxSelectController
$.ajax({
url: '@Url.Action("SaveColumnsToDb", "AjaxSelect", new { area = string.Empty })',
type: 'POST',
data: JSON.stringify(columns),
dataType: 'json',
contentType: 'application/json; charset=utf-8'
});
});
uj5u.com熱心網友回復:
事實上,因為您使用的是 contentType: 'application/json; charset=utf-8',您正在嘗試在請求正文中發送 json,因此請使用此語法
[HttpPost]
public void SaveColumnsToDb([FromBody] string[] data)
uj5u.com熱心網友回復:
更改了引數名稱。當我們使用 ajax 請求時,我們必須在資料中傳遞值,在 URL 部分中,我們只需要給出動作名稱和控制器名稱。
[HttpPost]
public void SaveColumnsToDb(string dataResponse)
{
var a = dataResponse;
}
$("#popup-saveBtn").click(function () {
var columns = [];
var parentElement = document.getElementById("tableColumns");
var childElements = parentElement.querySelectorAll("input[type=checkbox]");
// If checkbox is checked, push value to array
for (i = 0; i < childElements.length; i ) {
if (childElements[i].checked) {
columns.push(childElements[i].value);
}
}
/*var strColumns = columns.join(";");*/
console.log("str: ", columns);
console.log("JSON str: ", JSON.stringify(columns));
// Send data to AjaxSelectController
$.ajax({
url: '@Url.Action("SaveColumnsToDb", "AjaxSelect")',
type: 'POST',
data: { dataResponse: JSON.stringify(columns)},
dataType: 'json',
contentType: 'application/json; charset=utf-8'
});
});
uj5u.com熱心網友回復:
我設法使它作業。
更改了 $.ajax() 中的資料屬性。
data: JSON.stringify({ data: strColumns })
我只發送 csv 字串,例如“abc;abc;abc”控制器是相同的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/441296.html
標籤:C# jQuery json 阿贾克斯 asp.net-mvc
下一篇:ASP.NETMVC遞回
