发布每个都有附加值的HttpPostedFileBase对象的集合

时间:2015-07-24 15:26:53

标签: asp.net-mvc file-upload

我有一个MVC 5项目,其中包含一个表单,用户可以选择要上传的多个文件。但是,每个文件都需要有一个额外的整数值来指示其类型。我如何实现这一点,以便post方法接收HttpPostedFileBase对象的集合,以及每个对象的类型值?

1 个答案:

答案 0 :(得分:0)

只要您的POSTed数据格式正确,它就会“正常工作”。 MVC模型绑定器应该只是搞定。如果你已经让你的控制器动作接收一个HttpPostedFileBase对象数组,那么你应该能够为你的动作设置另一个参数,即整数数组`int [] fileTypes'。在您的表单中,您将需要包含这些整数的输入元素,其中NAME属性允许MVC模型绑定器正确绑定集合,这通常意味着您在页面上有这样的输入元素: <input type="hidden" value="3" name="fileTypes[0]" /> <input type="hidden" value="5" name="fileTypes[1]" />

有了这样的东西,你就会看到一个控制器动作     public ActionResult UploadMultipleFiles(HttpPostedFileBase[] uploadedFiles, int[] fileTypes)

模型绑定器实际上会为您提供挂钩输入参数,只要它们在HTML表单上正确命名即可。

如果您通过AJAX POST进行上传,同样仍然存在,您只需确保将fileTypes值作为表单变量放入,并使用正确的键名进行集合绑定。