2016-03-29 10 views
0

Obj listesini ajax çağrısından denetleyiciye geçiremiyorum, her zaman null gösterir n ne yapıyor yanlış bilmiyorum?Giriş Obj listesi denetleyicisi mvc 4 ajax çağrı, her null göstermek

burada AJAX ÇAĞRI ..

var SkillItems= new Object(); 
var length = $('#tbl-skill .row-val').length; 
for (var i = length; i <= length ; i++) 
{ 
    SkillItems[i] = ({ Skill_ID: count, Title: title, Skill_Description: desc }); 
    count++; 
} 
$("#save-unit").click(function() { 
    SkillItems = JSON.stringify({ 'SkillItems': SkillItems }); 
    $.ajax({ 
     contentType: 'application/json; charset=utf-8', 
     dataType: 'json', 
     type: 'POST', 
     url: '@Url.Action("CreateBlockUnit", "LPN_BlockPlan")', 
     data: SkillItems, 
     success: function() { 
      // $('#result').html('"PassThings()" successfully called.'); 
     }, 
     failure: function (response) { 
      // $('#result').html(response); 
     } 
    }); 
} 

Kontrolör ..

[HttpPost] 
public void CreateBlockUnit(List<LPN_Skills> SkillItems) // this SkillItems show null always 
{ 
    // code 
} 

Modeli ....

public class LPN_Skills 
{ 
    public int Skill_ID { get; set; } 
    public string Title { get; set; } 
    public string Skill_Description { get; set; } 
} 

sıkışmış m bana yardım edin kod bu

+0

bu varyant gibi bağlayıcı olan nesne SkillItems = new Object(); var uzunluk = $ ('# tbl-skill .row-val') uzunluk. için (var i = uzunluk; i <= uzunluk; i ++) { LPN_Skills [i] = ({Skill_ID: sayım, Başlık: title, Skill_Description: desc}); count ++; table.append ('' + count + '' + LPN_Skills [i] .Title + ''); } –

+0

evet lütfen kontrol edin –

+0

Bir an okumak için [Bir listeye Model Bağlama - Phil Haacked] (http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx /). –

cevap

1

SkillItems bir tür sınıftır ve değerini bir dize sınıfı ile değiştirmeye çalışıyorsunuz. Hata yapmamanıza şaşırdım.

 url: '@Url.Action("CreateBlockUnit", "LPN_BlockPlan")', 
     data: JSON.stringify(SkillItems), 
     success: function() { 

EDIT: $.ajax açıklamada

yapmaya çalışacağım Stephen Muecke tarafından verilen doğru cevap yansıtacak şekilde veri bölümünü değişti.

+0

nope ... çalışmıyor :( –

-1

bu satırı kaldırın: böylece nesneler dizisi oluşturmak ve yayınlamak için gereken Sizin denetleyici yöntemi List<LPN_Skills> kabul doğrudan ,

data: {SkillItems :SkillItems}, 
0

ile deneyin

SkillItems= JSON.Stringify({'SkillItems' :SkillItems}); 

o

var SkillItems = []; 
SkillItems.push({ Skill_ID: count, Title: title, Skill_Description: desc }); 

ve ajax yöntemini

olarak değiştirin.
$("#save-unit").click(function() { 
    $.ajax({ 
     contentType: 'application/json; charset=utf-8', 
     dataType: 'json', 
     type: 'POST', 
     url: '@Url.Action("CreateBlockUnit", "LPN_BlockPlan")', 
     data: JSON.stringify(SkillItems), 
     success: function() { 
     }, 
     failure: function (response) { 
     } 
    }); 
} 
+0

o thanx işe yaradı –