GRID:
<% this.Html.Write(Html.AntiForgeryToken()); %>

<%=
  this.Html.Kendo().Grid<PayrollEmployeeDetailVM.Info>()
    .Name("grid")
    .Filterable()
    .ColumnMenu()
    .Sortable()
    .Groupable()
    .Scrollable(scrollable => scrollable.Height(430))
    .Columns(col =>
    {
        col.Bound(x => x.PayrollId).Width(125);
        col.Bound(x => x.OutOfBalance).Width(125);
        col.Bound(x => x.Year).Width(125);
        col.Bound(x => x.Quarter).Width(125);
        col.Bound(x => x.CompanyName).Width(125);
        col.Bound(x => x.CompanyCategory).Width(125);
        col.Bound(x => x.PayeeTaxCategory).Width(125);
        col.Bound(x => x.PayeeTaxCode).Width(125);
        col.Bound(x => x.PayeeTaxPayrollCode).Width(125);
        col.Bound(x => x.PayeeTaxDescription).Width(125);
        col.Bound(x => x.OOBTax).Width(125);
        col.Bound(x => x.Fraction).Width(125);
        col.Bound(x => x.EmployeeDetails).Width(125);
        col.Bound(x => x.PayrollDetailId).Width(125);
        col.Bound(x => x.DetailOutOfBalance).Width(125);
        col.Bound(x => x.PayCycle).Width(125);
        col.Bound(x => x.DefaultPayCycleCode).Width(125);
        col.Bound(x => x.TaxCategory).Width(125);
        col.Bound(x => x.TaxCode).Width(125);
        col.Bound(x => x.TaxDescription).Width(125);
        col.Bound(x => x.Resident).Width(125);
        col.Bound(x => x.Rate).Width(125);
        col.Bound(x => x.PayrollGross).Width(125);
        col.Bound(x => x.PayrollTaxable).Width(125);
        col.Bound(x => x.PayrollTax).Width(125);
        col.Bound(x => x.Month1).Width(125);
        col.Bound(x => x.Month1_12).Width(125);
        col.Bound(x => x.Month2).Width(125);
        col.Bound(x => x.Month2_12).Width(125);
        col.Bound(x => x.Month3).Width(125);
        col.Bound(x => x.Month3_12).Width(125);
    })
    .Pageable(pageable => pageable
        .ButtonCount(5)
        .Info(true))
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(25)
        .Read(read => read.Action("GetData", "ViewPayrollEmployeeDetail").Data("sendAntiForgery")))
%>  
<script type="text/javascript">
    function sendAntiForgery() {
        return { "__RequestVerificationToken": $('input[name=__RequestVerificationToken]').val() }
    }
</script>



GETDATA
[ValidateAntiForgeryToken]
		public ActionResult GetData([DataSourceRequest]DataSourceRequest request)
		{
			IQueryable<AppCompanyPayrollPayCycleEE> details = this.DataManager.AppDataContextManager.GetAppCompanyPayrollPayCycleEERepository()
					.Find(x => x.Id != 0) as IQueryable<AppCompanyPayrollPayCycleEE>;

			IAppPayrollSoftwareTaxCodeRepository payrollTaxCodeRepo = this.DataManager.AppDataContextManager.GetAppPayrollSoftwareTaxCodeRepository();

			Func<AppCompanyPayrollPayCycleEE, PayrollEmployeeDetailVM.Info> InfoFactory = delegate(AppCompanyPayrollPayCycleEE model)
			{
				AppPayrollSoftwareTaxCode thing = payrollTaxCodeRepo
						.Find(x => x.ReportTaxCode &&
							x.AppPayrollSoftwareId == model.AppCompanyPayrollPayCycle.AppCompanyPayCycle.AppCompany.AppPayrollSoftwareId)
							.FirstOrDefault();

				return new PayrollEmployeeDetailVM.Info
				(
					model,
					thing != null ? thing.TaxCode : String.Empty,
					null
				);
			};

			DataSourceResult result = details.ToDataSourceResult(request);

			int count = result.Total;

			List<PayrollEmployeeDetailVM.Info> items = new List<PayrollEmployeeDetailVM.Info>();

			foreach (AppCompanyPayrollPayCycleEE item in result.Data)
			{
				items.Add(InfoFactory(item));
			}

			DataSourceResult result2 = items.AsEnumerable().ToDataSourceResult(request);

			result2.Total = count;

			return Json(result2, JsonRequestBehavior.AllowGet);
		}