I have a form where I am uploading multiple files and there are a couple of textboxes and some checkboxes associated with each file being uploaded. I have seen examples for uploading multiple files where the actionresult signature is something like this:
[HttpPost]
public ActionResult Upload(IEnumerable<HttpPostedFileBase> fileUpload)
然而,我找不到任何例子, 我可以上传多个文件, 在我的动作中, 产生签字是这样的:
[HttpPost]
public ActionResult Upload(MyViewModel vm)
之所以我要张贴这个查看模型是因为我认为它比使用窗体集合变量更干净,还因为我想将每个文件上传,并添加数据及其相关文本框,以 List<FileUploadPacket>
组合起来,作为视图模式的一部分
<强> UPDATE 强>
我的观点模式如下:
public class EmployeeVM
{
public int EmployeeID {get ;set;}
public string EmpName {get ;set;}
//Other properties
public List<FileUploadPacket> FileUploadPackets { get; set; }
}
文件 UploadPacket 类, 具有 Http PpostedFileBase 类型属性 。
public class FileUploadPacket
{
public int FileID {get ;set;}
public string UserEnteredDesc {get ;set;}
//some more other properties
public HttpPostedFileBase UpFile { get; set; }
}
我视野的代码片片段。
<%: Html.TextBoxFor(model => model.EmpName, new { maxLength = 50 })%>
Upload your files here:
<input type="file" id="UpFile" name="UpFile" value="ActionHandlerForForm" />
<%: Html.TextBoxFor(model => model.FileUploadPackets[0].UserEnteredDesc )%>
<input type="file" id="UpFile" name="UpFile" value="ActionHandlerForForm" />
<%: Html.TextBoxFor(model => model.FileUploadPackets[1].UserEnteredDesc )%>
您可以看到, 我拥有这个被上传到本类的文件的所有其它特性。 这样以我的形式, 员工可以输入他的姓名并上传他的文件, 并为每个文件提供一些描述和其他细节 。 如果我将公开的 < code> HtpPPPPedFileBase UpFileFile{ get; 设置; \\\ / code> 属性移到 < code> EmpleeeVM code> 类, 那么我就必须在阵列中单独收集所有的文件, 并手动绘制一个文件来描述它。 难道没有办法将 < code> UpFile code > 属性保留在 < code> FileUploadPacket 类本身吗?
我在用Aspx 查看引擎。
麻烦你帮忙,谢谢你抽空...