.NET Core MVC文件上传Post方法未触发问题求助
分析你的文件上传Post方法未触发的问题
我看了你的代码,很快找到了关键问题,咱们一步步来解决:
核心问题:控制器名称指定错误
你的FileUpload方法明明在HomeController里,但视图中的form标签却写了asp-controller="UploadFiles"——这个控制器根本不存在!MVC找不到对应的控制器和Action,自然不会触发Post方法。
修改视图中的form标签
把form的控制器属性改成Home,修正后的代码如下:
<form method="post" enctype="multipart/form-data" asp-controller="Home" asp-action="FileUpload"> <div class="form-group"> <div class="col-md-10"> <p>Please Upload An Excel File.</p> <input type="file" name="files" multiple /> </div> </div> <div class="form-group"> <div class="col-md-10"> <input type="submit" value="Upload" /> </div> </div> </form>
额外验证点(确保万无一失)
除了控制器名称,我还帮你检查了其他可能影响的因素:
- 表单enctype:你已经设置了
enctype="multipart/form-data",这是文件上传必须的配置,没问题。 - 参数名称匹配:视图中input的
name="files"和控制器Action的参数List<IFormFile> files完全一致,模型绑定能正常工作。 - 路由属性:控制器上的
[HttpPost("UploadFiles")]定义了一个直接路由,如果你不想用tag helper,也可以把form的action直接写成action="/UploadFiles",这样也能正确触发方法。
测试建议
修改后,你可以打开浏览器的开发者工具(F12),点击提交按钮后查看网络请求:如果看到状态码是200,并且返回了包含文件数量、大小和路径的JSON,就说明成功触发了Post方法。
内容的提问来源于stack exchange,提问作者Jackington
相关产品推荐
相关产品推荐

