控制器中返回两个json对象的方法

时间:2016-08-02 16:18:34

标签: angularjs json asp.net-mvc

Public JsonResult GetDetails()
{ 
  List<Cust> Customers = new List<Cust>();
  Customers = GetCustomerDetails();
  var name = Customers.Select(e => new{e.custname}).Distinct().ToList();
  var dept =  Customers.Select(e => new{e.deptname}).Distinct().ToList();
  var response = new{CustomerNames = name, CustomerDepartments = dept};
  return Json(response, JsonRequestBehaviour.AllowGet();
}

我有上面的方法返回一个json对象,现在这个方法必须返回这个响应的一个子集以及它返回的一个,是否可以对department类型进行过滤并从同一个方法返回两个jon对象。

1 个答案:

答案 0 :(得分:2)

不确定。您可以向匿名对象添加一个属性并返回该属性。

public JsonResult GetDetails()
{ 
  var customers = GetCustomerDetails();
  var names = customers.Select(e => new {e.custname}).Distinct().ToList();
  var depts =  customers.Select(e => new { e.deptname}).Distinct().ToList();
  var deptSubSet = depts.Where(f=>f.deptname=="IT").ToList(); 
  //replace this with your condition

  var response = new {  CustomerNames = names, 
                        CustomerDepartments = depts,
                        FilteredDepartments = deptSubSet 
                     };
   return Json(response, JsonRequestBehaviour.AllowGet();
}

Where条件linq代码替换为您需要用于获取子集的where子句。

BTW,结果不是一个数组,它将是一个具有3个属性的对象。这些属性的值将是一个数组。