LINQ查询IList <string>到JSon格式</string>

时间:2013-10-10 14:23:32

标签: asp.net-mvc string linq ilist

我有一个返回用户列表的类

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

1 个答案:

答案 0 :(得分: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 };

希望我能够回答你的问题。