我有一个 KendoUI 网格,可以将图像呈现为模板的一部分,如下所示:
@(Html.Kendo().Grid(Model.UnitDetails)
.Name("grid")
.DataSource(ds => ds
.Ajax()
.Read(read => read.Action("Get", "FleetMonitor"))
.AutoSync(true)
.PageSize(3)
)
.HtmlAttributes(new { style = "height:auto;" })
.Columns(columns =>
{
columns.Template(p => { }).ClientTemplate(" ").Width(270);
columns.Template(p => { }).ClientTemplate(" ").Width(250);
columns.Template(p => { }).ClientTemplate(" ").Width(150);
columns.Template(p => { }).ClientTemplate(" ").Width(550);
columns.Template(p => { }).ClientTemplate(" ").Width(25);
columns.Template(p => { }).ClientTemplate(" ").Width(100);
})
.ClientRowTemplate(Html.Partial("_ClientRowTemplate", Model).ToHtmlString())
.Pageable()
.Sortable())
但是,每当我加载页面时,网格就会崩溃,但出现以下异常:
使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了 maxJsonLength 属性上设置的值。
所以,我用谷歌搜索它,它把我带到了 SO,它对问题提出了建议(我的控制器):
public ActionResult Get([DataSourceRequest] DataSourceRequest request, string tag)
{
UnitContract[] listOfUnitsFromService = UnitClient.GetListOfUnits(false, tag, true);
var cookie = Request.Cookies.Get("Company.Name.UnitTagCookie");
Model = new FleetMonitorModel
{
UnitDetails = GenerateUnitDetails(listOfUnitsFromService.ToList()),
Tags = GetAvailableTags(),
Refresh = true,
SelectedTag = GetTagFromCookie(cookie)
};
var jsonResult = Json(Model.UnitDetails.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = Int32.MaxValue;
return jsonResult;
}
那么,任何人都可以对此提供一些见解,以及可能的解决方法吗?:) 我应该提到,如果我从这里更改网格初始化部分,它可以工作并呈现模板:
@(Html.Kendo().Grid(Model.UnitDetails)
...
对此:
@(Html.Kendo().Grid<UnitDetailsModel>()
但是,这样做会破坏我网格中的一些其他功能。更加具体; 由于某种原因,它会阻止我的 SignalR-js 工作。