public JsonResult Index(ParametroCriteria criteria) { var pageNumber = criteria.NumeroPagina < 1 ? 1 : criteria.NumeroPagina; var pageSize = _iParametroService.GetValor <int>(CodigosParametros.PARAMETRO_TAMAÑO_PAGINA_GRILLAS); var parametros = _iParametroService.GetList() .Where(c => string.IsNullOrWhiteSpace(criteria.Nombre) || c.Nombre.ToLower().Contains(criteria.Nombre.ToLower())); var inicio = (pageNumber - 1) * pageSize; var fin = inicio + pageSize > parametros.Count() ? parametros.Count() - inicio : pageSize; var parametrosPagina = parametros.ToList().GetRange(inicio, fin); var parametrosVista = (from x in parametrosPagina let Opciones = getItems(x.Opciones) orderby x.Nombre select new { x.Id, x.Nombre, x.Codigo, x.Descripcion, x.Valor, x.TieneOpciones, x.Tipo, x.EsEditable, x.FechaCreacion, Opciones }); var resultado = new { Data = parametrosVista, TotalRegistros = parametros.Count() }; return(Json(resultado, JsonRequestBehavior.AllowGet)); }