2016-07-28 51 views
0

我創建了一個包含多個表單的小部件(帶有選項卡式的div)。每個表單都有多個輸入,例如名稱和說明。用戶也能夠上傳照片。這裏的問題是照片與所有表單共享。例如:訪問表單之外的輸入文件

<div class="tabbedDiv"> 
    <div class="tab1"> 
    <form action="/Home/PostForm1" enctype="multipart/form-data" method="post"> 
     <input type="text" ...> 
     <input type="text" ...> 
     <input type="submit" value="Submit"> 
    </form> 
    </div> 
    <div class="tab2"> 
    <form action="/Home/PostForm2" enctype="multipart/form-data" method="post"> 
     <input type="text" ...> 
     <input type="text" ...> 
     <input type="submit" value="Submit"> 
    </form> 
    </div> 
    <div class="tab3"> 
    <form action="/Home/PostForm3" enctype="multipart/form-data" method="post"> 
     <input type="text" ...> 
     <input type="text" ...> 
     <input type="submit" value="Submit"> 
    </form> 
    </div> 
</div> 


<div class="pull-right fileUpload btn btn-default" id="inputDiv"> 
    Upload 
    <i class="fa fa-camera"></i> 
    <input type="file" class="upload" id="imgInputNormal" name="imgInput[]" accept="image/*" multiple /> 
</div> 

所以在這裏我的問題是,當我發帖的形式之一(1,2或3)我無法訪問我的控制器輸入文件,因爲文件輸入不是任何形式的內。如果我在每個表單上放置一個文件輸入,那麼所有文件將只被引用到相同的表單中。就像我在開始時所說的,這些文件將獨立於窗口小部件表單。

這是我應得的表單文件:

IFormFileCollection oCollection = Request.Form.Files; 

所以我如何可以共享文件輸入任何想法會爲了當在我的控制得到這些相同的文件之一,所有的形式表單是否提供?

謝謝。 PS:如果我不夠清楚,請告訴我。

+0

如果表單處於單獨的選項卡中,因此永遠不可見在一起,那麼我不明白爲什麼不只是將一個照片輸入到每個表單上。一次只能提交其中一種表格,因此用戶必須選擇提交哪一種表格,然後填寫表格中的字段?因此,在每張表格中上傳照片都沒有問題? – ADyson

+0

嗨。問題在於用戶可能會更改選項卡。如果他這樣做,我想保留他先選擇的文件。這就是爲什麼我決定將這些文件保存在表單之外並使它們獨立。 –

+1

你可以用jquery/ajax做這樣的事情:http://stackoverflow.com/questions/3820860/post-with-mvc-2-including-values-outside-of-form –

回答

1

如果您的用戶將全部使用符合HTML5的瀏覽器,我唯一能想到的就是有點骯髒的黑客攻擊,但它可能會工作 - 將屬性form="form1"添加到您的<input type="file"...>。然後在選項卡更改時處理事件,並將form=屬性更改爲當前顯示的表單的ID(表單將需要ID)。這應該將文件輸入與當前顯示的表單關聯起來,並將其與其餘數據一起提交。

查看http://www.w3schools.com/tags/att_input_form.asp的背景。