c# - 我在 .net5 api 应用程序中有两个具有一对多关系的模型。子模型包含 IFormFile 属性。我无法绑定此属性
问题描述
这是我的模型
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public List<CategoryDetail> CategoryDetails { get; set; }
}
public class CategoryDetail
{
public int Id { get; set; }
public string Url { get; set; }
public IFormFile File { get; set; }
public Category Category { get; set; }
}
我的控制器功能是
[HttpPost]
public IActionResult Create([FromForm] Category category)
{
throw new NotImplementedException();
}
当我通过邮递员传递数据时,控制器方法内的参数始终为空。
解决方案
您不能将两种不同的内容类型数据传递到后端。
你的键名错了,应该CategoryDetails[0].File
不是CategoryDetails[0].files
。键名应与属性名匹配,并且不区分大小写。
正确的方法应该如下:
笔记:
如果您CategoryDetails
仅使用File
属性发布,则需要确保删除[ApiController]
和[FromForm]
属性。这是一个已知的 github 问题。如果您发布CategoryDetails
多个属性,则无需删除任何属性。
推荐阅读
- python - 如何使用统计方程python计算总体平均值的置信度值
- swift - 如何从多个凭据中获取特定的用户凭据以用于保护空间
- apache-spark - 无法在 Apache Spark 上执行来自 Aspectj 的建议
- azure - 如何在 Azure 应用程序网关中设置内容编码?
- c++ - 如何在 cmake 中使用 DEBUG 宏?
- python - Discord 错误:[信号量超时期限已过]
- python - python请求中的字符串“我想从json中提取步骤”
- linkedin - 如果我已经有 id 字段,如何从 LinkedIn API OAuth 2.0 中提取公共 URL?
- linux - 如何在linux中使用交叉调试器x86_64-w64-mingw32-gdb来调试.exe
- java - 如何将导航栏链接到 Android Studio 中的活动?