如何在一个POST请求中使用IFormFileCollection发送int

时间:2019-07-16 15:37:49

标签: c# asp.net-core

我正在尝试上传图像(我正在使用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。 我也尝试使用asp-route进行设置,但在控制器上获得了相同的0。 是否有机会在一个请求中发送IFormFileCollection和int?如果是这样,我该怎么办?

1 个答案:

答案 0 :(得分:1)

使用[FromForm]属性来明确告知模型联编程序在何处获取操作数据

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

引用Model Binding in ASP.NET Core