【问题标题】:"The length of the string exceeds the value set on the maxJsonLength property." when trying to convert a partial view to string“字符串的长度超过了 maxJsonLength 属性上设置的值。”尝试将部分视图转换为字符串时
【发布时间】:2016-01-28 01:20:48
【问题描述】:

当负载超过MaxJsonLength 属性时,我在尝试将 MVC 部分视图转换为字符串时收到错误"Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property."

在这种情况下如何设置 MaxJsonLength 属性?我已经尝试按照this 帖子在web.config 中设置<jsonSerialization maxJsonLength="2147483644"/> 属性,但这没有任何效果。我不完全从这里去哪里寻找一些指导。

下面viewResult.View.Render(viewContext, sw);行的代码错误:

    protected string ConvertViewToString(string viewName, object model)
    {
        string razorView = string.Empty;

        if (string.IsNullOrWhiteSpace(viewName)) return razorView;

        if (model != null && ViewData != null)
        {
            ViewData.Model = model;
        }

        if (ControllerContext != null)
        {
            ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
            if (viewResult != null)
            {
                using (StringWriter sw = new StringWriter())
                {
                    ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);

                    viewResult.View.Render(viewContext, sw);
                    viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);

                    razorView = sw.GetStringBuilder().ToString();
                }
            }
        }

        return razorView;
    }

【问题讨论】:

  • 您确定在渲染视图时发生这种情况,而不是在将有效负载返回给客户端时发生吗?
  • 是的,它会在viewResult.View.Render(viewContext, sw); 行上引发异常。我在基本控制器中覆盖了 Json 方法,但没有到达该代码。

标签: c# asp.net asp.net-mvc


【解决方案1】:

造成这种情况的根本原因是试图将太大的结果集加载到局部视图中的 Telerik Kendo 网格中 - Kendo 网格正在抛出异常,这就是它在viewResult.View.Render(viewContext, sw) 行中被捕获的原因。解决方案是将结果集分解为更小的可管理块。

【讨论】:

  • 我遇到了同样的问题。你如何“将结果……分解成更小的可管理的块”?
猜你喜欢
  • 2012-08-06
  • 2015-03-27
  • 2015-05-30
  • 1970-01-01
  • 2018-04-25
  • 2017-08-31
  • 1970-01-01
  • 2015-04-06
  • 2013-10-07
相关资源
最近更新 更多