如果获得大视图结果,我应该使用哪个 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 选项? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

forEach 循环中的 AJAX 函数

iOS 如何知道哪个视图控制器应该处于活动状态?

使用ajax将@Model从视图发送到控制器

根据ajax响应的结果在下拉菜单中自动选择一个选项[重复]

如何获得一个按钮来确定要转到哪个视图控制器?

Drupal 视图 - 当视图没有结果时不显示任何公开的过滤器选项