asp.net核心文件上传总是为空

jaz*_*000 2 c# asp.net-core-mvc asp.net-core

我一直在尝试按照文档中的这个示例来允许将文件上传到我的控制器,它确实命中了我的操作,但它总是以空值出现。

我的视图模型

<form method="post" enctype="multipart/form-data" asp-controller="Data" asp-action="ImportAdditionalCodes">
    <div class="form-group">
        <div class="col-md-10">
            <p>Upload import data:</p>
            <input type="file" name="files" >
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-10">
            <input type="submit" value="Upload">
            <button type="button" id="btnCancelUploadData">Cancel</button>
        </div>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

我的控制器操作

[HttpPost]
public async Task<IActionResult> ImportAdditionalCodes(IFormFile file)
{
    //file is always null here!!!
    if (file?.Length > 0)
    {
        JsonSerializer js = new JsonSerializer();
        using (MemoryStream ms = new MemoryStream())
        {
            await file.CopyToAsync(ms);

            using (StreamReader streamReader = new StreamReader(ms))
            {
                CommodityAdditionalCodeTypeDto[] codes= (CommodityAdditionalCodeTypeDto[]) js.Deserialize(streamReader, typeof(CommodityAdditionalCodeTypeDto[]));
            }
        }
   }
   return null;
}
Run Code Online (Sandbox Code Playgroud)

Pio*_*app 5

小错别字。代替

<input type="file" name="files" >
Run Code Online (Sandbox Code Playgroud)

写:

<input type="file" name="file" >
Run Code Online (Sandbox Code Playgroud)

您还可以使用访问发送文件 HttpContext.Request.Form.Files;