public ActionResult Index(string sortColumn, string sortOrder, string currentFilter, string searchString, int?page) { ViewBag.CurrentSort = sortColumn; ViewBag.SortOrder = sortOrder == "asc" ? "desc" : "asc"; if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; IQueryable <Vendor> lstVendor = vendorRepo.List(); if (!String.IsNullOrEmpty(searchString)) { lstVendor = lstVendor.Where(s => s.Name.Contains(searchString) || s.Address.Contains(searchString) || s.ContactPerson.ToString().Contains(searchString) || s.ContactNo.Contains(searchString) || s.Terms.ToString().Contains(searchString)); } if (String.IsNullOrEmpty(sortColumn)) { lstVendor = lstVendor.OrderByDescending(p => p.Id); } else { lstVendor = lstVendor.OrderBy(sortColumn + " " + sortOrder); } int pageSize = 10; int pageNumber = (page ?? 1); return(View(lstVendor.ToPagedList(pageNumber, pageSize))); }