0

我需要使用服务器端处理将一些数据加载到数据表中。

我需要将自定义 JSON 对象返回给 datatables 对象的 aaData 属性,以进行一些自定义格式设置。我不能简单地返回一个字符串数组。

这是我返回数组的控制器操作(这是我需要更新的内容):

 var result = from u in filteredResults
                     select new string[] {Convert.ToString(u.userId), u.userName, u.roleId.ToString(), u.type, u.isActive.ToString(), u.firstName, u.lastName, 
                     u.email, u.phone, u.Postcode, u.Street, u.Street, u.company, u.jobId.ToString(), u.job, u.country, u.countryName, u.City, u.LoginsNum.ToString(), 
                     u.LastLogin.ToString()};           

        return Json(new
        {
            sEcho = param.sEcho,
            iTotalRecords = result.Count(),
            iTotalDisplayRecords = result.Count(),
            aaData = result  ** NOT OK; must be updated **
        }, JsonRequestBehavior.AllowGet);

结果对象必须采用以下形式:

[
 { "prop1": "val1",
   "prop2": "val2",
    ......
   "propn": "valn"
 },
 .................


 { "prop1": "val1",
   "prop2": "val2",
    ......
   "propn": "valn"
 },

] 
4

2 回答 2

0

您必须将列表作为JSON字符串,并且您的操作返回类型是JsonResult

public JsonResult GetData()
{
     var list = filteredResults.Select(temp => new[] { temp.userId.ToString(), temp.userName.ToString(), temp.email.ToString(), temp.phone.ToString(), temp.Postcode.ToString(), temp.Street.ToString(), temp.LastLogin.ToString() }).FirstOrDefault();
     return Json(list, JsonRequestBehavior.AllowGet);
}

您必须调用 GetData() 操作并返回JSON

于 2013-09-23T08:02:07.993 回答
0

我实际上所做的是使用动态对象语法来格式化返回的 JSON 数组,如下所示:

var result = from u in filteredResults
                     select new 
                     {
                         id = Convert.ToString(u.userId), 
                         userName = u.userName, 
                         roleId = u.roleId.ToString(), 
                         roleName = u.type, 
                         isActive =  u.isActive == true ? "Active" : "Inactive", 
                         firstName = u.firstName, 
                         lastName = u.lastName, 
                         email = u.email, 
                         phone = u.phone,
                         postcode = u.Postcode, 
                         street = u.Street, 
                         company = u.company, 
                         jobId = u.jobId.ToString(),
                         job = u.job, 
                         //countryKey = u.country, 
                         countryName = u.countryName, 
                         city = u.City, 
                         loginsNum = u.LoginsNum.ToString(), 
                         lastLogin = u.LastLogin.ToString()
                     };

        return Json(new
        {
            sEcho = param.sEcho,
            iTotalRecords = result.Count(),
            iTotalDisplayRecords = result.Count(),
            aaData = result
        }, JsonRequestBehavior.AllowGet);
于 2013-09-23T08:52:07.743 回答