我喜歡第三方文件上傳(Backload)上傳圖像& JavaScript獲取上傳的圖像名稱。我想將圖像名稱列表綁定到我的MVC模型中。我的要求是在提交表單時動態地創建隱藏的輸入。我知道,我必須在循環中使用順序綁定。任何人都可以幫助我如何使用正確的語法來實現這一點。 它應該是類似的東西這個添加隱藏的輸入字段並將它們綁定到模型
for (int i= 0; i< noOfImages; i++)
{
<input type="hidden" name="Model.Images[i].Name" value=file.name />
}
(請注意,我不希望Ajax解決方案,這和請告訴我的代碼我Razor視圖使用或者是否有其他更好的解決方案,請讓我知道)。謝謝。
public class ItemModel
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<ImageModel> Images { get; set; }
}
public class ImageModel
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ItemModel Items { get; set; }
}
我用下面的JavaScript代碼來獲得上傳的文件名的值,當我點擊提交#ItemCreate形式的按鈕來創建隱藏的輸入。
$('#ImageUplodedtable input[name="ImageName"]').each(function() {
$('#ItemCreateForm').append('<input name="ImageName" value="' + this.value + '"/>');
我將下面的部分添加到我的問題中。我錯過了單引號和兩個加號['+ i +'],現在它工作正常。
$('#ImageUplodedtable input[name="ImageName"]').each(function() {
for (int i= 0; i< noOfImages; i++)
{
<input type="hidden" name="Images[+'i'+].Name" value="' + this.value + '" />
}
我不能在這裏使用.each()for循環。任何人都可以提供一種方法來獲取Uploded表中的所有圖像名稱?
非常感謝您的快速回復。 (var i = 0; i <1; i ++){('#AddItem')。append(){('#ImageInputName [ ''); } 我試過這個,但是對於循環的遞增值(i)無法正常工作。 name =「Images [0] .Name />沒有for循環,你可以讓我知道爲什麼遞增值在這裏不起作用 – user3627847 2014-11-04 16:49:56
因爲'i'開始爲0,並且你的條件必須小於1 。因此,for循環運行一次,其中'i'然後增加到1並且不再滿足條件 – 2014-11-04 16:53:04
對不起,我沒有在我最後的評論中清楚地解釋我的問題 我手動給name =「Images [ 0] .Name作爲輸入的名稱(無for循環)檢查模型綁定是否正常工作。它工作正常。 但是,當我使用FOR循環它不工作。假設我有一個圖像名稱,並且當for循環運行一次時,它應該創建,但是我的值仍然是i ... name = Images [i] .name。這是我的問題。 (可以使用.each()for循環嗎?) – user3627847 2014-11-04 17:18:01