在 Kendo 网格中显示图像:使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错
Display Image in Kendo Grid : Error during serialization or deserialization using the JSON JavaScriptSerializer
为了显示在 dabatase 中保存为二进制的图像,我执行以下操作:
.Columns(columns =>
{
columns.Bound(c => c.Title).Width(420).ClientTemplate(string.Format("{0}...", "#= formatter(Title) #"));
columns.Bound(c => c.Text).Width(900).ClientTemplate(string.Format("{0}...", "#= formatter(Text) #"));
columns.ForeignKey(p => p.languageId, (System.Collections.IEnumerable)ViewData["lang"], "Id", "Name").Title("Language").Width(140).EditorTemplateName("LangDropDown");
columns.Bound(p => p.Image64).ClientTemplate("<img src='data:image/png;base64,#=Image64#' />").Title("Base64 Images");
columns.Command(command => { command.Edit(); command.Destroy(); });
})
我的模特:
[Display(Name = "Photo")]
public byte[] img { get; set; }
public string Image64
{
get
{
return img != null ? Convert.ToBase64String(img) : null;
}
}
当我加载页面时,网格显示为空,当我尝试使用浏览器的控制台选项卡获取更多信息时,我看到以下错误:
Error during serialization or deserialization using the JSON
JavaScriptSerializer. The length of the string exceeds the value set
on the maxJsonLength property.
我试图在我的 web.config 中添加这个:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
和
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647" />
但是 none 这些解决方案有效。欢迎任何帮助!
谢谢
我通过覆盖 json 方法找到了解决方案
为了显示在 dabatase 中保存为二进制的图像,我执行以下操作:
.Columns(columns =>
{
columns.Bound(c => c.Title).Width(420).ClientTemplate(string.Format("{0}...", "#= formatter(Title) #"));
columns.Bound(c => c.Text).Width(900).ClientTemplate(string.Format("{0}...", "#= formatter(Text) #"));
columns.ForeignKey(p => p.languageId, (System.Collections.IEnumerable)ViewData["lang"], "Id", "Name").Title("Language").Width(140).EditorTemplateName("LangDropDown");
columns.Bound(p => p.Image64).ClientTemplate("<img src='data:image/png;base64,#=Image64#' />").Title("Base64 Images");
columns.Command(command => { command.Edit(); command.Destroy(); });
})
我的模特:
[Display(Name = "Photo")]
public byte[] img { get; set; }
public string Image64
{
get
{
return img != null ? Convert.ToBase64String(img) : null;
}
}
当我加载页面时,网格显示为空,当我尝试使用浏览器的控制台选项卡获取更多信息时,我看到以下错误:
Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.
我试图在我的 web.config 中添加这个:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
和
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647" />
但是 none 这些解决方案有效。欢迎任何帮助! 谢谢
我通过覆盖 json 方法找到了解决方案