When using Ajax in ASPNET MVC, I have 4 options to get view result at least (attached code below).
As a result, Which should I use over the other ones? In the case of the large data, I don't want to get the error msg like
Note that, the Json option (3 or 4) can give us "Binding on the client-side is going to be faster than the performance hit of the extra network hit" benefits aspect as this answer said.
- PartialView - HttpGet
    [HttpGet]
    [AjaxRequest]
    public PartialViewResult GetTemporaryInvoices(GetTemporaryInvoicesCriteria criteria)
    {
        var data = _multipleInvoicesGenerationService.GetTemporaryInvoices(criteria);
        return PartialView("~./InvoicesTable_Content.cshtml", data);
    }
- PartialView - HttpPost
    [HttpPost]
    [AjaxRequest]
    public PartialViewResult GetTemporaryInvoices(GetTemporaryInvoicesCriteria criteria)
    {
        var data = _multipleInvoicesGenerationService.GetTemporaryInvoices(criteria);
        return PartialView("~./InvoicesTable_Content.cshtml", data);
    }
- Json - HttpGet
    [HttpGet]
    [AjaxRequest]
    public JsonResult GetTemporaryInvoices(GetTemporaryInvoicesCriteria criteria)
    {
        var jsonData = _multipleInvoicesGenerationService.GetTemporaryInvoices(criteria);
        return Json(jsonData, JsonRequestBehavior.AllowGet);
    }
- Json - HttpPost
    [HttpPost]
    [AjaxRequest]
    public JsonResult GetTemporaryInvoices(GetTemporaryInvoicesCriteria criteria)
    {
        var jsonData = _multipleInvoicesGenerationService.GetTemporaryInvoices(criteria);
        return Json(jsonData);
    }
 
    