2014-01-17 28 views
0

我想根據特定用戶有多少圖像添加未知數量的圖像;我已經使用。附加功能爲div,標籤,輸入和它的工作正常,但是當我想追加與源不工作! 那麼我該如何做到這一點? 我曾經嘗試這樣做:MVC動態添加來自控制器的img標記

` string sc = "$('<img/>', {src=\"~/Content/themes/img2.jpg\" alt=\"\",class:'table-wrapper'}).appendTo(finalDalata);"; 

返回的JavaScript(SC)`

finalDalata是我div名稱 有啥IAM做錯了什麼?

回答

0

通過TagBuilder

TagBuilder tag = new TagBuilder("img"); 
      tag.Attributes.Add("id", "myImage"); 
      tag.Attributes.Add("src", "/imgs/" + UserName + ".jpg"); 
      tag.Attributes.Add("alt", "my image"); 
      tag.Attributes.Add("class", "imgsClass"); 

解決再轉換tag串並將它傳回view

日Thnx

0

你appendTo代碼是無效的,它需要一個選擇器,並將圖像屬性的格式不正確,所以它應該是:

string sc = "$('<img/>', { src:'~/Content/themes/img2.jpg', alt:'', class:'table-wrapper'}).appendTo('#finalDalata');" 

然而,控制器應返回的數據,而不是控制(攻擊和注射來記),所以更好的辦法是在JavaScript創建的視圖側的AppendImage功能:

function AppendImage(attributes) 
{ 
    $('<img/>', attributes).appendTo('#finalDalata'); 
} 

注意:你應該消毒之前的屬性是肯定的。

那麼只返回屬性的列表:

var images = new List<dynamic>(); 
// Do this for each images 
images.Add(new { src="~/Content/themes/img2.jpg", alt="", class="table-wrapper"}); 
return Json(images); 

而在阿賈克斯成功,你可以:

success: function (data) { 
    data.foreach(function (item) { 
     AppendImage(item); 
    }); 
} 
+0

我需要從SQL數據庫中的數據有一些數據,並在控制器和模型和基本另一個函數其他一些選擇的照片,所以我真正需要的第一個解決方案,我注意到了「=」號和將其更改爲「:」但沒有任何事情發生! – user3208099

+0

有2個等於改變,並且appendTo需要一個選擇器:.appendTo('#finalDalata');注意''和#。 – Karhgath