2013-05-10 17 views
10

Ich habe Probleme mit Json und ListenC# Wie Liste zurückzukehren <> Als Json

Ich versuche, eine Liste von Chat Entity Klasse zurückzukehren, aber wenn ich versuche, es den Compiler whines zurückzukehren. Ich habe auch versucht, IEnumerable < zurück> aber der gleiche Fehler kam

was kann ich tun?

hier ist meine Funktion, die das Element zurückkehrt,

public List<Chat> GetNewChatPosts() 
{ 
    var userID = U_rep.GetUserID(User.Identity.Name); 
    var list = G_rep.GetNewestChat(0, userID); 
    return Json(list); 
} 

Dies ist die neueste Chat-Funktion

public List<Chat> GetNewestChat(int gameID, int userID) 
{ 
    var pos1 = (from p in n_db.ChatPos 
       where p.userID == userID && gameID == p.gameID 
       select p).SingleOrDefault(); 
    int pos; 
    if (pos1 == null) 
    { 
     pos = 0; 
     ChatPo n = new ChatPo(); 
     n.gameID = gameID; 
     n.userID = userID; 
     n.chatID = pos; 

     n_db.ChatPos.InsertOnSubmit(n); 
     n_db.SubmitChanges(); 
    } 
    else 
    { 
     pos = pos1.ID; 
    } 

    var newIEnumerable = from chat in n_db.Chats 
          where chat.ID > pos 
          orderby chat.ID descending 
          select chat; 
    List<Chat> newestChat = new List<Chat>(); 
    foreach (var n in newIEnumerable) 
    { 
     newestChat.Add(n); 
    } 

    var last = newIEnumerable.Last(); 

    pos1.ID = last.ID; 

    n_db.SubmitChanges(); 

    return newestChat;  
} 

Holen und das ist der Ajax

$.ajax({ 
    type: "GET", 
    url: "/Game/GetNewChatPosts", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    data: JSON.stringify(text), 
    success: function (data) { 
     alert("success post"); 
    }, 
    error: function() { alert("error post"); } 
}); 

Antwort

18

Der Compiler aufrufen ist unzufrieden mit deinem Code, weil du sagst, dass deine Methode (ich rate action method) d ist List<Chat> zurückgegeben und Sie geben JsonResult zurück. Wenn Sie ASP.NET MVC verwenden, sollte es wie folgt aussehen:

public ActionResult GetNewChatPosts() 
{ 
    var userID = U_rep.GetUserID(User.Identity.Name); 
    var list = G_rep.GetNewestChat(0, userID); 

    return Json(list); 
} 
+0

Das löste mein Problem! Danke für die klare Erklärung! –