如果获得大视图结果,我应该使用哪个 Ajax 选项? [关闭]
Posted
技术标签:
【中文标题】如果获得大视图结果,我应该使用哪个 Ajax 选项? [关闭]【英文标题】:Which Ajax option should I use in case of getting the large view result? [closed] 【发布时间】:2021-09-02 20:13:18 【问题描述】:当在 ASPNET MVC 中使用Ajax
时,我有 4 个选项来获取查看结果至少(下面附上代码)。
因此,我应该使用哪个而不是其他的?在大数据的情况下,我不想得到像这样的错误消息
Error during serialization or deserialization using the JSON javascriptSerializer. The length of the string exceeds the value set on the maxJsonLength property..
请注意,Json option (3 or 4)
可以为我们提供“客户端绑定将比额外网络命中的性能损失更快” 好处方面,正如 this answer 所说。
-
PartialView - HttpGet
[HttpGet]
[AjaxRequest]
public PartialViewResult GetTemporaryInvoices(GetTemporaryInvoicesCriteria criteria)
var data = _multipleInvoicesGenerationService.GetTemporaryInvoices(criteria);
return PartialView("~./InvoicesTable_Content.cshtml", data);
-
部分视图 - 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);
【问题讨论】:
【参考方案1】:如果您在视图页面中使用多个操作,请选择 Json - HttpGet (选项 3)。这将帮助您在不重新加载视图页面的情况下获取数据并从服务器端获取数据。我以前用它来获取大量数据,但你应该改进你的 LINQ 在管理器上获取数据的方法。
注意:在 localhost 运行中,它看起来很慢,但是当您将解决方案放在生产服务器上时,它会比以前更快。
【讨论】:
以上是关于如果获得大视图结果,我应该使用哪个 Ajax 选项? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章