2013-10-10 3 views
0

У меня есть класс, который возвращает список пользователейзапросов LINQ IList <string> к JSon Формат

public IList<RegisterUsers> GetUsers() 
{ 
    var query = (from up in _context.UserProfile 
        join um in _context.Membership on up.UserID equals um.UserID 
        select new RegisterUsers { ID = ua.UserID, FirstName = ua.FirstName, LastName = ua.LastName, LastLogIn = up.LastLogIn, Status = up.Status }); 

    return query.ToList(); 
} 

Я называю этот класс, выполнив следующие действия на моем действии

var UserRepository = new UserRepository(); 
var AllUsers = UserRepository.GetUsers(); 


var result = from c in AllUsers 
       select new List<string> { c.ID.ToString(), c.FirstName, c.LastName, c.LastLogIn,c.Status }; 


return Json(new { sEcho = param.sEcho, 
        iTotalRecords = result.Count(), 
        iTotalDisplayRecords = result.Count(), 
        aaData = result 
       }, 
JsonRequestBehavior.AllowGet); 

Приведенный выше код работает отлично и он возвращает данные JSON. Но я пытаюсь выяснить, почему я получаю сообщение об ошибке, если я просто присоединяю AllUsers непосредственно к переменной aaData. См. Ниже.

var UserRepository = new UserRepository(); 
var AllUsers = UserRepository.GetUsers(); 

return Json(new { sEcho = param.sEcho, 
        iTotalRecords = AllUsers.Count(), 
        iTotalDisplayRecords = AllUsers.Count(), 
        aaData = AllUsers 
       }, 
JsonRequestBehavior.AllowGet); 
+2

Что такое текст ошибки? –

+0

Возможно, потому что 'AllUsers' является списком зарегистрированных пользователей, тогда как' aaData' ищет ** ??? ** – jp2code

+0

aaData ожидает двумерную матрицу, содержащую ячейки. Ниже приведен URL-адрес того, что я пытаюсь выполнить. http://www.codeproject.com/Articles/155422/jQuery-DataTables-and-ASP-NET-MVC-Integration-Part – user2309706

ответ

0

я смог вернуть список, выполнив следующие действия

var AllUsers = UserRepository.GetUsers().Select(p => new List<string> { p.UserID.ToString(), p.FirstName, p.LastName }).ToList(); 

В принципе код выше только устраняет следующую строку кода

var result = from c in AllUsers 
      select new List<string> { c.ID.ToString(), c.FirstName, c.LastName, c.LastLogIn,c.Status }; 

Надеюсь, я смог ответить на ваши вопрос.

 Смежные вопросы

  • Нет связанных вопросов^_^