我有以下代码:
public ActionResult AjaxHandler(jQueryDataTableParamModel param)
{
/* PROBLEM */
var allCompanies = DataRepository.GetCompanies();
/* PROBLEM */
var result = from c in allCompanies
select new[] { c.Name, c.Address, c.Town };
return Json(new { sEcho = param.sEcho,
iTotalRecords = allCompanies.Count(),
iTotalDisplayRecords = allCompanies.Count(),
aaData = result
},
JsonRequestBehavior.AllowGet);
}
我需要帮助写作
DataRepositry.GetCompanies();
标记为PROBLEM的部分可以帮助我编写一个函数,该函数返回适合运行代码的数据。我知道它应该是某种Json。但我无法弄清楚如何使其发挥作用。
DataRepository.GetCompanies() <- could be any function, I just need to make it work
我试着这样做:
var allCompanies = new List<string[]>() {
new string[] {"1", "Microsoft", "Redmond", "USA"},
new string[] {"2", "Google", "Mountain View", "USA"},
new string[] {"3", "Gowi", "Pancevo", "Serbia"}
};
var newJson = JsonConvert.SerializeObject(allCompanies);
var allCompanies = newJson;
那没用。
说明:
这是一个更大的项目的一部分,基本上它假设填充DataTable,我得到的确切错误。这是一个附加的屏幕。
答案 0 :(得分:1)
尝试像这样创建AllCompanies:
var allCompanies = new[] {
new { Name="XYZ", Country="USA", ID="1" },
new { Name="ABC", Country="USA", ID="2" },
new { Name="DEF", Country="MX", ID="3" }
};
我的猜测是,由于没有属性名称而是拥有一堆字符串,因此无法使用{key:value}
对生成正确的JSON对象
更好的是,像这样创建一个公司类:
public class Company
{
public string Name;
public string Country;
public string ID;
}