2016-08-02 6 views
0
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オブジェクトを返すので、このメソッドの返されたものと一緒にこの応答のサブセットを返さなければなりません。同じメソッドから2つのjonオブジェクトを返します。2つのjsonオブジェクトを返すコントローラ内のメソッド

答えて

2

匿名オブジェクトにもう1つのプロパティを追加して返すことができます。

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コードを交換してください。

BTW、結果は配列にはなりません.3つのプロパティを持つオブジェクトになります。これらのプロパティの値は配列になります。

+0

お返事ありがとうございます...部門名がITで、名前が「N」で始まる顧客をすべて選択することは可能ですか、2つの結果をマージできますか? – Agasthya

+0

はい。 [StartsWith](http://stackoverflow.com/questions/34777044/linq-query-using-contains-is-not-working/34777091#34777091)拡張メソッド – Shyju

+0

を使用することができますが、どうすれば名前と部門をマージできますか?上記の応答オブジェクトのプロパティに格納します。 – Agasthya

関連する問題