问题描述:在ASP.NET Core中,使用AJAX将数组传递给控制器时,发现数组似乎未填充。
解决方法:以下是一种可能的解决方法,其中包含代码示例:
var arrayData = [1, 2, 3, 4, 5]; // 数组数据
$.ajax({
url: "/Controller/Action",
type: "POST",
contentType: "application/json",
data: JSON.stringify(arrayData),
success: function (response) {
// 处理响应
},
error: function (xhr, textStatus, errorThrown) {
// 处理错误
}
});
[FromBody]
属性将数组从请求主体绑定到方法参数。[HttpPost]
public IActionResult Action([FromBody] int[] arrayData)
{
// 处理数组数据
return Ok();
}
services.AddControllers().AddNewtonsoftJson(options =>
{
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
这将使用Newtonsoft.Json库对请求主体进行JSON序列化和反序列化。
以上解决方法假设你正在使用ASP.NET Core 3.0或更高版本。如果你使用的是较旧的版本,可能需要进行适当的更改。
希望以上解决方法能够帮助到你解决问题。