【发布时间】:2019-08-27 11:26:34
【问题描述】:
我正在尝试在我的模型中绑定从邮递员发布的模型中的数据:
public class VariantModel
{
public int Id { get; set; }
public List<SubvariantModel> Subvariants { get; set; }
}
public class SubvariantModel
{
public int Id { get; set; }
public string Description { get; set; }
public IFormFile Document { get; set; }
}
每个属性都被填充,但只有 Document 属性变为空,如您在此处看到的:
但令人惊讶的是,当我检查 http 请求对象时,我看到了该文件:
代码:
[HttpPost]
public void Post([FromForm]VariantModel emp)
{
var d = HttpContext.Request;
}
谁能告诉我这里可能是什么问题?
更新:
【问题讨论】:
-
你的键名很奇怪。名字应该是
Subvariants[0].Document,而不是Subvariants[0][Document]。令人惊讶的是,这实际上适用于Id和Description,但也许出于某种原因它根本不适用于IFormFile。看起来很奇怪,但老实说我没有看到任何其他问题。 -
@ChrisPratt 我也尝试过这样的 Subvariants[0].Document 但仍然为空,是的,确实我也没有得到这里的问题。这是 asp.net webapi 核心中的错误吗模型粘合剂?
-
一点也不。这是非常的基本代码,我几乎就像这样运行代码。只要帖子正文中的名称遵循正确的绑定约定(这些约定似乎如此),它就会绑定。
-
@ChrisPratt 那为什么现在不起作用。可能是您没有在嵌套模型中使用 IFormFile。有什么解决方案吗?
-
我刚刚用
ASP.NET Core 2.0测试了你的代码,一切对我来说都很好。您能否在 github 上分享您的项目并分享您通过 postman 执行的请求?
标签: c# asp.net-web-api asp.net-core postman