如何在 ASP.NET MVC 3 中发布一组文件?
Posted
技术标签:
【中文标题】如何在 ASP.NET MVC 3 中发布一组文件?【英文标题】:How to post an array of files in ASP.NET MVC 3? 【发布时间】:2011-11-26 03:43:17 【问题描述】:我希望能够以一种形式发布多个文件。我想将这些文件作为文件数组传递。例如我想这样做。
<input type="file" name="files[0]" />
<input type="file" name="files[1]" />
<input type="file" name="files[2]" />
然后我希望能够在控制器中接收这些文件作为数组。这个我试过了。
public ActionResult AddPart(HttpPostedFileBase[] files)
但这不起作用。我用谷歌搜索了它,但我能找到的只是上传一个文件的例子。有谁知道如何使用 MVC3 C# 做到这一点。
【问题讨论】:
【参考方案1】:如果您不仅要上传一个文件,则需要在表单中使用enctype="multipart/form-data"
。
@using (html.BeginForm("", "Client", FormMethod.Post, new enctype="multipart/form-data"))
和控制器:
[HttpPost]
public ActionResult AddPart(IEnumerable<HttpPostedFileBase> files)
其他部分都没问题。
【讨论】:
是否还有其他我可能遗漏的内容,因为您发布的解决方案似乎不起作用。【参考方案2】:好吧,我遇到了几乎相同的情况。但这适用于嵌套的文件数组。
使用 IEnumerable 作为数组([ ]) 解决了我的问题。 [] s
[HttpPost]
public ActionResult AddPart(IEnumerable<HttpPostedFileBase>[] files)
【讨论】:
以上是关于如何在 ASP.NET MVC 3 中发布一组文件?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.net MVC 代码片段问题中的 Jqgrid 实现
如何在 ASP.NET MVC 3 的一个解决方案中从另一个项目获取文件路径?
如何在 ASP.NET MVC 3 razor ViewStart 文件中指定不同的布局?
ASP.NET Core 2.0 MVC 6. 如何管理每个视图的javascript文件?