【发布时间】: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