Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

asp.net mvc 3 return json array

Trying to generate an array on the client side for js:

var ds = [{ text: "john", value: "1" }, { text: "paul", value: "2" }];

In my asp.net mvc 3 controller I have created a entityframework model and trying to return a list :

NORTHWNDEntities db = new NORTHWNDEntities();
public ActionResult GetCustomers()
{ 
    return Json( db.Customers,JsonRequestBehavior.AllowGet);
}

at the moment I cant figure out just to return the customername+customerid property as a list of customers (NWind database)?

like image 737
user603007 Avatar asked Sep 09 '13 23:09

user603007


2 Answers

Try this - for each customer create a new anonymous object with the properties you want.

public ActionResult GetCustomers()
{ 
    var customers = from o in db.Customers
                select new { customerName = o.CustomerName, customerId = o.CustomerId};

    return Json(customers.ToList(), JsonRequestBehavior.AllowGet);
}

Note if you want for ex. "text" and "value" to be the values in your JSON array simply change customerName and customerId above to whatever names you want.

like image 94
Adam Tuliper Avatar answered Nov 14 '22 17:11

Adam Tuliper


try this:

public ActionResult GetCustomers()
{ 
     var customers = for c in db.Customers
            select new { text = c.CustomerName, value = c.CustomerId};

     return Json( customers.ToArray(), JsonRequestBehavior.AllowGet);
}
like image 29
Roger Barreto Avatar answered Nov 14 '22 17:11

Roger Barreto