public ActionResult Handle(ControllerContext context)
        {
            if (!CanHandle(context))
            {
                return(null);
            }
            var model = context.Controller.ViewData.Model;

            if (model == null)
            {
                return(null);
            }

            context.HttpContext.Response.ContentType     = MediaTypes.First();
            context.HttpContext.Response.ContentEncoding = Encoding.UTF8;

            if (AlwaysReturnPartial || CustomViewExists(context))
            {
                return new PartialViewResult
                       {
                           ViewData = context.Controller.ViewData,
                           TempData = context.Controller.TempData,
                           ViewName = CustomViewExists(context) ? GetCustomViewName(context) : (string)context.RouteData.Values["action"],
                       }
            }
            ;

            return(OnHandle(context));
        }