2013-09-23 62 views
0

我需要使用服務器端處理將一些數據加載到數據表中。如何返回數據表服務器端處理的JSON對象

我需要返回一個自定義的JSON對象到數據表對象的aaData屬性來做一些自定義格式。我不能簡單地返回一個字符串數組。

我是一個新手在數據表和 javascript/ajax所以請裸露在我身邊。

這是我的控制器動作,我返回數組(這是我需要更新):

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" 
}, 

] 

回答

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

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); 
相關問題