我已经在这个问题上工作了很长一段时间。 基本上,我正在使用Kendo Grid将数据从Controller显示到ViewPage。
但是,当我运行视图时,我继续收到此错误 maxJsonLengthError
我如何纠正这个问题?提前感谢所有帮助。 请参阅我的编辑
这是我的ControllerCode: -
public ActionResult Index()
{
ViewData["DealsList"] = objDealerModel.listDeals;
return View();
}
这是我的ViewPage代码: -
@(Html.Kendo().Grid((IEnumerable<WCB.Models.DealerQueue>)ViewData["DealsList"])
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.DealId).Visible(false);
columns.Bound(p => p.DealRefNo).Title("Deal No");
columns.Bound(p => p.CustomerName).Title("Customer Name");
columns.Bound(p => p.DealType).Title("Deal Type");
columns.Bound(p => p.Location).Visible(false);
columns.Bound(p => p.CreatedDate).Title("Created Date");
columns.Bound(p => p.Currency).Title("Currency");
columns.Bound(p => p.Amount).Title("FCY Amount");
columns.Bound(p => p.DealValue).Title("Deal Amount").ClientTemplate("#= kendo.toString(DealValue, 'n') #");
columns.Bound(p => p.Status);
columns.Command(command => command.Custom("ViewDetails").Click("ViewDealDetails")).Title("View");
})
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(20))
.Sortable()
.Scrollable(scr => scr.Height("auto"))
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
)
)
编辑: 我试过在myController中使用这段代码: -
var jsonResult = Json(objDealerModel.listDeals, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult;
任何人都可以根据这个建议在我的viewPage中为KENDO GRID做什么改变?对剑道不太熟悉
答案 0 :(得分:0)
我遇到了同样的问题,我通过在appSettings中为aspnet:MaxJsonDeserializerMembers
设置更高的值来解决此问题:
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
</appSettings>
如果这些选项不起作用,您可以尝试使用此thread中指定的JSON.NET创建自定义json值提供程序工厂。
修改强> 或者如果这与Kendo Grid绑定有关,那么你可以试试这个。
public class MySerializer : Kendo.Mvc.Infrastructure.JavaScriptInitializer
{
public override IJavaScriptSerializer CreateSerializer()
{
var serializer = base.CreateSerializer() as DefaultJavaScriptSerializer;
serializer.MaxJsonLength = serializer.MaxJsonLength * 100;
return serializer;
}
}
Kendo.Mvc.Infrastructure.DI.Current.Register<Kendo.Mvc.Infrastructure.IJavaScriptInitializer>( () => newMySerializer() );