[英]How to return JSON object for datatables server side processing
我需要使用服務器端處理將一些數據加載到數據表中。
我需要將自定義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"
},
]
您必須將列表制作為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
。
我實際上所做的是使用動態對象語法來格式化返回的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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.