gpt4 book ai didi

jquery - 无法使用 ajax 和 asp.net core 发送数组

转载 作者:行者123 更新时间:2023-12-01 01:06:09 25 4
gpt4 key购买 nike

我写了这个ajax函数:

$(function () {
$("#showReport").click(function () {
var data = [];
for (var i = 0; i <@Model.LiFilters.Count;i++) {
data[i] = $("#filter" + i).val();
$("#myDiv").html("Hello!");
}

alert('{filters:' + JSON.stringify(data) + '}');
$("#myDiv").remove();
$.ajax({
type: "POST",
url: '@Url.Action("ShowReport", "Report")',
traditional: true,
//data: '{filters:' + JSON.stringify(data) + '}',
data: { filters : data },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert(data);
alert(response[0]);
$("#myDiv").html(response[0]);
alert(response);
},
failure: function (response) {
alert(response.responseText);
},
error: function (response) {
alert(response.responseText);
}
});
return false;
});
});

并在报告 Controller 中执行此操作:

 [HttpPost]
public JsonResult ShowReport(string[] filters)
{
C_AminReport aminReport = null;
string sErr = string.Empty;
//C_ReportParams aminParams = null;
//C_AminReport aminReport;
string sReport = "Empty Report!";
if (C_AminReport.U_GetReport(aminReport.ID, out aminReport))
{
int iConIndex = Get_ServiceIndex();
aminReport.U_RenderReport(iConIndex, ref sErr);
aminReport.U_GetReportFromAmin(iConIndex, aminReport, out sReport, ref sErr);
}
string[] asReport;
JsonBuilder.U_TryReadJson(sReport, out asReport);
return Json(asReport);
}

但是当运行代码时,我看到数据数组已填充,但在 ShowReport 操作内部,fillters 数组是一个空数组并且未填充!我还在操作参数中尝试了 [FromBody] 标签,但它不起作用!有什么问题吗?

最佳答案

我测试了您的 JavaScript,它正在尝试发送查询字符串中的所有数据。

您必须使用JSON.stringify。其中之一应该有效:

data: '{filters:' + JSON.stringify(data) + '}'

data: JSON.stringify(data)

我怀疑第二个会起作用。

您可能仍然需要[FromBody]

关于jquery - 无法使用 ajax 和 asp.net core 发送数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48523116/

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