首页 > 解决方案 > 如何在一个 POST 请求中使用 IFormFileCollection 发送 int

问题描述

我正在尝试上传图片(我正在使用IFormFileCollection),但还需要在同一个 POST 请求中获取额外的数据(简单的 int 值)。

我的控制器看起来像这样:

public async Task<ActionResult<List<Guid>>> Create(IFormFileCollection uploads, int id) { }

我用来测试它的cshtml看起来像这样:

<form asp-action="Create" asp-controller="ProjectMedia" method="post" enctype="multipart/form-data">
    <input type="file" name="uploads" /><br>
    <input type="file" name="uploads" /><br>
    <input type="number" name="id" /><br>
    <input type="submit" value="Upload" />
</form>

我在接收要上传的文件方面没有任何问题,但除了它们我什么都没有。id 始终默认为 0。我也尝试设置 with asp-route,但在控制器上得到了相同的 0。是否有机会IFormFileCollection在一个请求中发送和 int?如果是这样,我该怎么做?

标签: c#asp.net-core

解决方案


使用[FromForm]属性显式地告诉模型绑定器从哪里获取操作的数据

public async Task<ActionResult<List<Guid>>> Create([FromForm]IFormFileCollection uploads, [FromForm]int id) { 
}

ASP.NET Core 中的参考模型绑定


推荐阅读