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

使用FormData传递List数据至.NET控制器时出现空值问题求助

解决FormData传递.NET列表模型绑定为null的问题

问题根源

你当前的前端代码只是将FileName和ID的值直接追加到TemplateFilesData[index]下,但.NET的模型绑定需要明确指定实体属性的完整路径,否则无法识别要映射到AttachmentDTO的哪个字段,最终导致列表元素全部为null。

修复方案

修改前端FormData的追加逻辑,明确指定每个属性的完整绑定路径:

var options = new FormData();
let existingFiles = viewModel.get("entity.TemplateFilesData");
existingFiles.forEach((item, index) => {
    if (item) {
        // 格式:集合名[索引].属性名
        options.append(`TemplateFilesData[${index}].FileName`, item.FileName);
        options.append(`TemplateFilesData[${index}].ID`, item.ID.toString()); // long类型转字符串避免类型绑定问题
    }
});

后端控制器补充配置

确保控制器的Action参数添加[FromForm]特性,明确告知框架从FormData中绑定模型:

[HttpPost]
public IActionResult YourActionName([FromForm] ContentTemplateViewModel model)
{
    // 业务逻辑处理
    return Ok();
}

额外注意事项

  • 如果父类AttachmentInfoDTO中包含必填属性,要么在后端将其设为可空(如public string? ParentProperty { get; set; }),要么前端同步传递对应值,否则模型绑定会失败。
  • 数值类型(如long类型的ID)建议转成字符串传递,避免跨端类型转换异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:05:19