Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# How To return List<> As Json

I am having problem with Json and Lists

I am trying to return a list of Chat Entity class but when i try to return it the compiler whines. I also tried to return IEnumerable<> but the same error came

what can i do ?

here is my function that is returning the item,

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

This is the Get Newest Chat function

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;    
}

and This is the Ajax call

$.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"); }
});
like image 361
user2369105 Avatar asked May 10 '13 07:05

user2369105


1 Answers

The compiler is unhappy with your code because you are saying that your method (I'm guessing action method) is defined to return List<Chat> and you are returning JsonResult. If you are using ASP.NET MVC it should look like this:

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

    return Json(list);
}
like image 164
tpeczek Avatar answered Sep 20 '22 13:09

tpeczek