我是MVC的新手,我遇到了一個我似乎無法解決的問題。我已經看到過幾篇關於類似問題的文章,但沒有什麼能夠讓我滿足我需要實現的法案。在MVC中處理多個多文件輸入
我有一個MVC4項目,我需要在一個頁面上有多個多文件輸入,我需要能夠區分通過哪個輸入提交哪些文件。
我見過this SO文章建議有多個Post動作參數,但我的代碼似乎將它們全部作爲單個列表處理。
這裏是我的控制器代碼:
public ActionResult ProjectDocuments(C4Tbl_UploadedFiles c4tbl_uploadedfiles, IEnumerable<HttpPostedFileBase> File1, IEnumerable<HttpPostedFileBase> File2)
{
try
{
foreach (var file in File1)
{
if (file.ContentLength > 0)
{
//Handle the first file list
}
}
foreach (var file in File2)
{
if (file.ContentLength > 0)
{
//Handle the second file list
}
}
這裏是我查看代碼:
<table border="0" id="cssTable" class="nobg">
<tr>
<th style="width: 100px; min-width: 100px; max-width: 100px">
<b>Type</b>
</th>
<th style="width: 400px; min-width: 400px; max-width: 400px">
<b>File to Upload</b>
</th>
<th style="width: 500px; min-width: 500px; max-width: 500px">
<b>Status</b>
</th>
</tr>
<tr>
<td style="width: 100px; min-width: 100px; max-width: 100px">
<b>Blueprint(s)</b>
</td>
<td style="width: 400px; min-width: 400px; max-width: 400px">
<input type="file" name="File1" id="BP" multiple style="width: 380px"/>
</td>
<td style="width: 500px; min-width: 500px; max-width: 500px; text-align: left">
@Html.RadioButton("Submitted", "Yes", false, new { @style = "width: 25px;", groupname="group1" }) Uploaded
@Html.RadioButton("Submitted", "No", false, new { @style = "width: 25px;", groupname="group1" }) Not Uploaded
@Html.RadioButton("Submitted", "N/A", false, new { @style = "width: 25px;", groupname="group1" }) Not Applicable
</td>
</tr>
<tr>
<td style="width: 100px; min-width: 100px; max-width: 100px">
<b>Recovery Guide(s)</b>
</td>
<td style="width: 400px; min-width: 400px; max-width: 400px">
<input type="file" name="File2" id="RG" multiple style="width: 380px"/>
</td>
<td style="width: 500px; min-width: 500px; max-width: 500px; text-align: left">
@Html.RadioButton("Submitted", "Yes", false, new { @style = "width: 25px;", groupname="group2" }) Uploaded
@Html.RadioButton("Submitted", "No", false, new { @style = "width: 25px;", groupname="group2" }) Not Uploaded
@Html.RadioButton("Submitted", "N/A", false, new { @style = "width: 25px;", groupname="group2" }) Not Applicable
</td>
<td>
<input type="submit" value="Submit" name="submit" />
</td>
</tr>
</table>
我需要能夠接受任何或所有輸入端已經提供的文件,我需要要知道我的哪些輸入是通過文件提交的,所以我知道它們是哪種類型的文件,所以我可以在我的表中創建相關的數據庫條目。
任何人都可以看到一個簡單的解決方案,並指出我在正確的方向嗎?
的名字你控件是'File1'和'File2',所以你的參數需要'IEnumerable Fi le1,IEnumerable File'(注意 - 你第二組單選按鈕將被忽略,因爲你給它們的名字與第一組名相同) –
謝謝Stephen,我改變了一些帖子的代碼讀得不好。我已經編輯了這個現在正確讀取。 – Nevski
在你的編輯中該方法的簽名現在是正確的,你可以遍歷File1和File2中的文件foreach(File1中的var文件){...' –