Подтвердить что ты не робот

С# Как вернуть список <> Как Json

У меня проблема с Json и списками

Я пытаюсь вернуть список класса Chat Entity, но когда я пытаюсь вернуть его, компилятор скулит. Я также попытался вернуть IEnumerable < > но пришла та же ошибка

что я могу сделать?

вот моя функция, возвращающая элемент,

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

Это функция Get Newest Chat

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

и это вызов 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"); }
});
4b9b3361

Ответ 1

Компилятор недоволен вашим кодом, потому что вы говорите, что ваш метод (я предполагаю, метод действия) определен для возврата List<Chat>, и вы возвращаете JsonResult. Если вы используете ASP.NET MVC, он должен выглядеть следующим образом:

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

    return Json(list);
}