我有一個表單,我在上傳多個文件,並且有幾個文本框和一些與每個上傳文件相關的複選框。 上傳多個文件,我已經看到了例子,其中的ActionResult簽名是這樣的:綁定到Viewmodel的文件上傳
[HttpPost]
public ActionResult Upload(IEnumerable<HttpPostedFileBase> fileUpload)
但是,我無法找到我在哪裏可以有多個文件上傳在我的ActionResult的簽名是這樣的任何例子:
[HttpPost]
public ActionResult Upload(MyViewModel vm)
我想要發佈這個viewmodel的原因是因爲我認爲它比使用FormCollection變量更清潔,並且因爲我想要將每個文件上傳並將數據與相關聯的文本框一起添加爲一組List<FileUploadPacket>
哪會p下面
我的視圖模型視圖模型
更新的藝術:
public class EmployeeVM
{
public int EmployeeID {get ;set;}
public string EmpName {get ;set;}
//Other properties
public List<FileUploadPacket> FileUploadPackets { get; set; }
}
其中有型HttpPostedFileBase我的觀點的
public class FileUploadPacket
{
public int FileID {get ;set;}
public string UserEnteredDesc {get ;set;}
//some more other properties
public HttpPostedFileBase UpFile { get; set; }
}
代碼段的屬性的FileUploadPacket類。 aspx如下
<%: 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)%>
正如你所看到的,我將所有其他屬性都保存在自己的類中,這個文件被上傳。因此,在我的表格中,員工可以輸入他的姓名並上傳他的文件,併爲每個文件提供一些說明和其他詳細信息。如果我將公共HttpPostedFileBase UpFile { get; set; }
屬性移動到EmployeeVM
類,那麼我將不得不單獨收集數組中的所有文件,並手動將文件映射到其描述。有沒有辦法做到這一點,UpFile
財產FileUploadPacket
類本身?
我正在使用aspx視圖引擎。
請幫忙。感謝您的時間...
'enctype =「multipart/form-data」'部分爲我解決了它。 –