100% There is nothing wrong with that.
An example application, NerdDinner, does the same thing as when loading lunches.
See http://nerddinner.codeplex.com/SourceControl/changeset/view/70027#874260 for the controller and http://nerddinner.codeplex.com/SourceControl/changeset/view/70027#874293 for the javascript file (find NerdDinner.FindMostPopularDinners )
eg.
FROM#
// AJAX: /Search/GetMostPopularDinners // AJAX: /Search/GetMostPopularDinners?limit=5 [HttpPost] public ActionResult GetMostPopularDinners(int? limit) { var dinners = dinnerRepository.FindUpcomingDinners(); // Default the limit to 40, if not supplied. if (!limit.HasValue) limit = 40; var mostPopularDinners = from dinner in dinners orderby dinner.RSVPs.Count descending select dinner; var jsonDinners = mostPopularDinners.Take(limit.Value).AsEnumerable() .Select(item => JsonDinnerFromDinner(item)); return Json(jsonDinners.ToList()); }
Js
NerdDinner.FindMostPopularDinners = function (limit) { $.post("/Search/GetMostPopularDinners", { "limit": limit }, NerdDinner._renderDinners, "json"); }
source share