我为我的公司创建了一个动态表单生成器。它允许用户使用不同的名称创建不同的表单域。处理表单很容易,但文件上载一直是一个噩梦,因为控制器不知道表单字段的名称。
在我的示例中,表单字段可以如下所示:
<input type="file" name="certificate" accept=".pdf" />
或
<input type="file" name="course-certificate" accept=".pdf, .docx" />
它甚至可以在一个表单中包含一个或多个文件字段
问题是,当它在提交表单后转到post方法时,我应该有一个文件参数。它可以是单个文件,如:
[HttpPost]
public ActionResult Create(HttpPostedFileBase file) // For a single file upload
{
}
或
[HttpPost]
public ActionResult Create(IEnumerable<HttpPostedFileBase> files) // For multiple file uploads
{
}
但我需要发送文件的随机名称,甚至可以有一个在中间冲刺。解决这个问题的方法是什么?
我不想在发送表单之前使用任何类型的jquery来准备它,我希望能够在创建表单时发送它,并像那样在我的控制器中接收它。