You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jQuery中将List追加到FormData并传递给后端控制器?

解决FormData传递列表到.NET后端的问题

直接将数组commentlist通过data.append("Comments", commentlist)添加到FormData的方式,后端无法自动绑定到List<CommentModalClass>,因为FormData默认仅支持简单键值对传递,复杂数组需要按以下方式处理:

方案一:适配.NET模型绑定规则逐个追加元素

循环遍历commentlist,按照Comments[index].属性名的格式将每个属性单独追加到FormData中,这样后端默认模型绑定就能识别并组装成列表:

// 替换原来的data.append("Comments", commentlist);
for (let i = 0; i < commentlist.length; i++) {
    const item = commentlist[i];
    data.append(`Comments[${i}].CommentID`, item.CommentID);
    data.append(`Comments[${i}].UserName`, item.UserName);
    data.append(`Comments[${i}].Comment`, item.Comment);
    data.append(`Comments[${i}].MainCommentID`, item.MainCommentID);
}

方案二:序列化JSON字符串传递(需后端配合反序列化)

将commentlist序列化为JSON字符串后追加到FormData,后端接收后手动反序列化为列表:

前端代码

data.append("Comments", JSON.stringify(commentlist));

后端控制器处理

在控制器方法中接收JSON字符串并反序列化:

using System.Text.Json;

public IActionResult YourActionMethod(YourMainModel model, [FromForm] string Comments)
{
    model.Comments = JsonSerializer.Deserialize<List<CommentModalClass>>(Comments);
    // 后续业务逻辑
}

注意事项

  • 确保前端对象的键名和CommentModalClass的属性名完全匹配(.NET模型绑定默认大小写不敏感,但保持一致能避免意外问题)
  • 如果CommentID是GUID类型,前端需传递其字符串形式(比如commentguid.toString()),确保后端能正确解析

内容的提问来源于stack exchange,提问作者user26029025

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:48:14