2012-12-26 37 views
1

我有這種形式對我的看法: my view上傳多個文件時如何獲取html標籤ID?

在我的控制,我有以下方法:

[HttpPost] 
public ActionResult UploadFile(HttpPostedFileBase file) 
{ 
// ... 
} 

我如何可以接收被點擊上載的文件輸入標籤的ID? (ID = 1個或ID = 2?

謝謝!

+2

你不能; 'id'不發送。給他們不同的名字。 – Ryan

+0

我認爲通常使用ID值作爲名稱值也是一個好主意,儘管名稱不必是唯一的。至少如果你遵循這個約定,那麼永遠不會對你的POST值中的哪個關鍵點產生任何困惑。 –

+0

但這意味着我將有多個上傳操作 - 每個輸入標籤的操作。如果我有7個或更多標籤怎麼辦? –

回答

1

ID只用於識別頁面上的HTML元素,而不是提交到服務器上。如果你不需要操作客戶端上的數據,你甚至不需要指定ID,通過指定相同的名稱,可以「堆疊」的文件。

所以

<form action="/action" enctype="multipart/form-data" method="post"> 
    <input name="file" type="file"></input> 
    <input name="file" type="file"></input> 
</form> 

在你的控制器,你收到的數組

[HttpPost] 
public ActionResult UploadFile(HttpPostedFileBase[] file) 
{ 
// ... 
} 
+0

但如果用戶只上傳一個文件(只點擊一個輸入),那麼我不知道它是哪一個。我需要一些如何將輸入標籤的ID添加到請求或類似的東西.. –

0
<script src="INCLUDE JQUERY"></script> 
<script> 
$(function(){ 
$('input[type="file"]').click(){ 
$('#id').value = $(this).attr('id'); 
} 
}) 
function fillId(){} 
</script> 
<form> 

<input type="text" id="id" name="id"/> 
<input type="file" id="file1"/> 
<input type="file" id="file2"/> 
<input type="Submit" value="submit"/> 
</form> 

*注這個夜晚不是最終的代碼,但你的想法

+0

尼斯!但是,控制器將如何收到該ID? –

+0

每當你點擊類型文件。類型文本將由id填充,因此它的值將以 –

+0

的形式發佈。然後,我可以將字符串參數添加到控制器操作中? –

相關問題