开发者

Filter Json from ASP.NET MVC JsonResult from a complex object

I am trying to post from a complex object from data model, a Json, unfortunately, I don’t want to pass all the hierarchy (person->HasMany Orders/ Orders HasMany Products etc.) but only the “first level” (for example person names for a grid view).

public JsonResult Search(string fMname, string fSname)
{
IList<Person> people = personRepository.FindAllMatchingName(fMname, fSname);
//Here with lazy loading querying only the “first level” for object
var data = people;
return Json(new { items = data });
//Here querying full object hierarchy and return the big Json
}

I am looking for a solution to filter the Json object and – if this is possible – to 开发者_Python百科work the lazy loading and to avoid the sql overhead.

Any ideas?


Create a simplified person class that only contains the properties you need. Then transform the IList of Person into a list of the simplified type using Linq.

public class SimplePerson
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

public JsonResult Search(string fMname, string fSname)
{
    IList<Person> people = personRepository.FindAllMatchingName(fMname, fSname);
    var data = people.Select(m => new SimplePerson() { FirstName = m.FirstName, LastName = m.LastName }).ToList();
    return Json(new { items = data });
}

You could use an anonymous type instead, but it wouldn't be strongly typed in the view.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜